compose 基础
作者:互联网
-
确保您选择的最小sdkversion至少是API级别21,这是Compose支持的最小API。
-
@Composable fun Greeting(name: String) { Surface(color = Color.Yellow) { Text (text = "Hello $name!") } }
The components nested inside
Surface
will be drawn on top of that background color (unless specified otherwise by anotherSurface
). - @Composable注释只需用在 绘制UI 和调用其他@Composable绘制UI的函数上
- 注意MainActivity中的可组合函数,在MainActivity类之外,声明为顶级函数(top level function)。Activity之外的代码越多,可以共享和重用的代码就越多。
- 您可以将UI组件提取到@Composable function中,这样就可以重用(reuse)它们,而无需复制代码
-
To place items in a vertical sequence, use the Column Composable function (similar to a vertical LinearLayout) Divider is a provided composable function that creates a horizontal divider.(一条水平分割线) @Composable fun MyScreenContent() { Column { Greeting("Android") Divider(color = Color.Black) Greeting("there") } }
创建可通用的composable函数:
要创建泛型容器,请创建一个可组合函数,该函数以返回Unit的可组合函数(这里称为content)作为参数。您可能已经注意到,之所以返回Unit,是因为可组合函数不会返回UI组件,而是发出(emit)它们。这就是为什么他们必须返回Unit
@Composable fun MyApp(content: @Composable () -> Unit) { BasicsCodelabTheme { Surface(color = Color.Yellow) { content() } } }
在函数中,您定义了希望容器提供的所有共享配置,然后调用传递的子组件Composable。
利用kotlin语法中的尾随lambda, 我们可以这样使用:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyApp { Greeting("Android") } } } } @Composable fun MyApp(content: @Composable () -> Unit) { BasicsCodelabTheme { Surface(color = Color.Yellow) { content() } } }
标签:compose,函数,color,基础,Surface,content,Composable,Unit 来源: https://www.cnblogs.com/--here--gold--you--want/p/15084876.html