Jetpack Compose中常见的核心概念总结-2

简介: 本文介绍了Kotlin中用于构建用户界面的基本组件和布局方法,涵盖文本显示、按钮、懒加载列表、弹窗及自定义组件等内容。通过示例代码讲解了如何使用LazyColumn和LazyRow实现高效列表加载,利用AlertDialog创建交互式弹窗,并通过ConstraintLayout实现复杂的界面布局。此外,还展示了如何定义和复用自定义组件,提高代码的可维护性和可重用性。适合初学者掌握Kotlin UI开发的基础知识。

6. 文本和按钮

Text - 文本

代码语言:kotlin

AI代码解释

Text(
    text = "Hello Nim",
    fontSize = 18.sp,
    fontWeight = FontWeight.Bold
)
  • fontSize: 设置文本字体大小。
  • fontWeight: 设置文本的粗细

Button - 按钮

代码语言:kotlin

AI代码解释

Button(
    onClick = { /* TODO*/ },
    modifier = Modifier.padding(8.dp)
) {
    Text("Click Nim")
}
  • Button: 创建一个可点击的按钮。
  • onClick: 点击时触发的事件。

7. Lazy 列表

LazyColumn - 懒加载列

代码语言:kotlin

AI代码解释

LazyColumn {
    items(100) { index ->
        Text("Item $index")
    }
}
  • LazyColumn: 一个只加载可见部分的垂直列表。

LazyRow - 懒加载行

代码语言:kotlin

AI代码解释

LazyRow {
    items(50) { index ->
        Text("Item $index")
    }
}
  • LazyRow: 一个只加载可见部分的水平列表。

8. Dialog 和 Alert

AlertDialog - 弹出框

代码语言:kotlin

AI代码解释

if (showDialog) {
    AlertDialog(
        onDismissRequest = { /* TODO */ },
        confirmButton = {
            TextButton(onClick = { /* Confirm action */ }) {
                Text("Confirm")
            }
        },
        dismissButton = {
            TextButton(onClick = { /* Dismiss action */ }) {
                Text("Dismiss")
            }
        },
        title = { Text("Title") },
        text = { Text("This is an alert dialog") }
    )
}
  • AlertDialog: 创建一个带有确认和取消按钮的弹出框。

showDialog - 显示对话框的状态

代码语言:kotlin

AI代码解释

var showDialog by remember { mutableStateOf(false) }
Button(onClick = { showDialog = true }) {
    Text("Show Dialog")
}

9. 自定义组件

Custom Component - 自定义组件

代码语言:kotlin

AI代码解释

@Composable
fun CustomButton(
    text: String,
    onClick: () -> Unit
) {
    Button(onClick = onClick) {
        Text(text)
    }
}
  • Composable Function: 定义一个可组合的自定义组件。

Reusable aly.papuros.com - 可重用组件

代码语言:kotlin

AI代码解释

CustomButton("Click Nim") {
    // Define action
}
  • CustomButton: 通过传递参数实现组件的复用。

10. 约束布局(ConstraintLayout)

ConstraintLayout - 约束布局

代码语言:kotlin

AI代码解释

ConstraintLayout(
    modifier = Modifier.fillMaxSize()
) {
    val (button, text) = createRefs()
    Button(
        onClick = { /* Do something */ },
        modifier = Modifier.constrainAs(button) {
            start.linkTo(parent.start)
            end.linkTo(parent.end)
            top.linkTo(parent.top, margin = 16.dp)
        }
    ) {
        Text("Button")
    }
    Text(
        "This is a constrained text",
        modifier = Modifier.constrainAs(text) {
            top.linkTo(button.bottom, margin = 16.dp)
            start.linkTo(parent.start)
            end.linkTo(parent.end)
        }
    )
}
  • createRefs: 创建引用来管理组件的约束关系。
  • constrainAs: 定义组件的约束关系,确定其在布局中的位置。
相关文章
|
7月前
|
人工智能 Kotlin
Jetpack Compose中常见的核心概念总结-1
本教程涵盖Jetpack Compose基础布局、修饰符使用、状态管理、样式主题及动画实现,通过Kotlin代码示例讲解Column、Row布局及常用组件样式与交互处理。
195 0
|
JSON Java API
GSON 泛型对象反序列化解决方案
GSON 泛型对象反序列化解决方案
921 0
|
存储 NoSQL 关系型数据库
面试题18: NOSQL数据库
面试题18: NOSQL数据库
297 0
|
XML JSON 缓存
让UI忙碌的安卓Lottie动画渲染库(二)
上节我们讲述了Lottie开源库如何导入Android Studio但是,开源库是不断迭代的,所以我们也要及时更新
881 0
|
开发工具 数据安全/隐私保护 git
Git报错 Incorrect username or password (access token) 的解决方式
Git报错 Incorrect username or password (access token) 的解决方式
3630 0
Git报错 Incorrect username or password (access token) 的解决方式
|
8月前
|
存储 安全 Java
深入理解Java序列化接口及其实现机制
记住,序列化不仅仅是把对象状态保存下来那么简单,它涉及到类的版本控制、安全性和性能等多个重要方面。正确理解和实现Java序列化机制对于构建高效、安全和可维护的Java应用至关重要。
260 0
|
移动开发 定位技术 Android开发
「揭秘高效App的秘密武器」:Kotlin Flow携手ViewModel,打造极致响应式UI体验,你不可不知的技术革新!
【9月更文挑战第12天】随着移动开发领域对响应式编程的需求增加,管理应用程序状态变得至关重要。Jetpack Compose 和 Kotlin Flow 的组合提供了一种优雅的方式处理 UI 状态变化,简化了状态管理。本文探讨如何利用 Kotlin Flow 增强 ViewModel 功能,构建简洁强大的响应式 UI。
368 3
|
Android开发
Android中如何动态的调整Dialog的背景深暗
在Android开发中,Dialog和DialogFragment可通过设置`Window`的`backgroundDimAmount`来控制背景变暗,突出对话框。在DialogFragment的`onCreateDialog`或`onViewCreated`中,获取`Dialog`的`Window`,设置`LayoutParams.dimAmount`(例如0.5f)并添加`FLAG_DIM_BEHIND`标志。要动态调整,可保存`LayoutParams`并在需要时更新。对于Dialog,创建时直接设置同样属性。还可以通过定义主题样式设置背景模糊程度。
586 7
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
1417 0

热门文章

最新文章