现在的Android Studio默认的kotlin demo和之前一些书上记载的又不一样了。全面使用kotlin+Jetpack Compose方式编写,继Data Binding 后推广,但是少了layout布局,初看一头雾水。这里查阅了一些资料,简单解释一下,备忘。
代码总体分为三段:
MainActivity中onCreate和之前一样。
Greeting方法中包含了text和布局。
GreetingPreview方法用于预览。
java
// MainActivity 继承自 ComponentActivity,这是 Android 中支持 Compose 的基本 Activity 类
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// enableEdgeToEdge() 让应用内容延伸到系统栏(状态栏和导航栏)下面。
enableEdgeToEdge()
// Compose 的入口点,在这里定义 UI。
setContent {
// 是一个自定义主题,通常由 Android Studio 的 Compose 模板生成。
KotlinDemoTheme {
// Scaffold 是一个 Compose 布局,提供基本的 Material Design 布局结构。
// modifier = Modifier.fillMaxSize() 使 Scaffold 填满整个可用空间
// innerPadding 是 Scaffold 提供的内部 padding,用于考虑系统栏等
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
}
}
// @Composable 注解表示这是一个 Compose 函数,可以描述 UI。
@Composable
// name: String - 要显示的名称
// modifier: Modifier - 用于调整布局和外观的修饰符,有默认值
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
// @Preview 注解表示这是一个预览函数,可以在 Android Studio 的设计工具中查看。
// showBackground = true 表示在预览中显示背景
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
KotlinDemoTheme {
// 调用 Greeting("Android") 显示预览内容
Greeting("Android")
}
}
Android Studio 预览
实机展示
参考谷歌:
Jetpack Compose 基础知识