前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >安卓软件开发:Jetpack Compose中常见的核心概念总结-4

安卓软件开发:Jetpack Compose中常见的核心概念总结-4

原创
作者头像
Nimyears
修改2024-11-04 17:13:52
修改2024-11-04 17:13:52
1050
举报

16. 刷新布局

PullRefresh - 下拉刷新

代码语言:kotlin
复制
val pullRefreshState = rememberPullRefreshState(isRefreshing, { /* TODO */ })

Box(
    modifier = Modifier
        .fillMaxSize()
        .pullRefresh(pullRefreshState)
) {
    LazyColumn {
        items(100) { index ->
            Text("Item $index", modifier = Modifier.padding(16.dp))
        }
    }
}
  • pullRefresh: 添加下拉刷新的功能。

17. 对话框和弹窗

Popup - 弹出框

代码语言:kotlin
复制
var showPopup by remember { mutableStateOf(false) }

Box {
    Button(onClick = { showPopup = true }) {
        Text("Show Popup")
    }

    if (showPopup) {
        Popup(alignment = Alignment.Center) {
            Box(
                modifier = Modifier
                    .size(200.dp)
                    .background(Color.White)
                    .clickable { showPopup = false }
            ) {
                Text("This is a popup")
            }
        }
    }
}
  • Popup: 创建一个弹出框,可以用于显示临时内容。

18. 调试与重组

Debug Recomposition - 重组调试

代码语言:kotlin
复制
@Composable
fun DebugComposable() {
    val count = remember { mutableStateOf(0) }
    Log.d("DebugComposable", "Recomposition count: ${count.value}")
    Button(onClick = { count.value++ }) {
        Text("Click me")
    }
}
  • Log.d: 调试重组次数,帮助理解组件的重组行为。

remember - 记住状态

代码语言:kotlin
复制
val state = remember { mutableStateOf(0) }
  • remember: 记住组件的状态,使重组过程中保持不变。

19. 工具栏和顶部AppBar

TopAppBar - 顶部工具栏

代码语言:kotlin
复制
TopAppBar(
    title = { Text("Nim App") },
    navigationIcon = {
        IconButton(onClick = { /* Navigate back */ }) {
            Icon(Icons.Filled.ArrowBack, contentDescription = "Back")
        }
    },
    actions = {
        IconButton(onClick = { /* Perform action */ }) {
            Icon(Icons.Filled.Settings, contentDescription = "Settings")
        }
    }
)
  • TopAppBar: 创建一个包含标题、导航图标和动作图标的顶部应用栏。

Scaffold - 脚手架布局

代码语言:kotlin
复制
Scaffold(
    topBar = {
        TopAppBar(title = { Text("Home") })
    },
    content = { padding ->
        Box(modifier = Modifier.padding(padding)) {
            Text("Content goes here")
        }
    }
)
  • Scaffold: 提供应用布局结构,包括顶部工具栏、内容和底部导航栏等区域。

20. 对话框和模态窗口

AlertDialog - 警告对话框

代码语言:kotlin
复制
var showDialog by remember { mutableStateOf(false) }

if (showDialog) {
    AlertDialog(
        onDismissRequest = { showDialog = false },
        title = { Text("Alert") },
        text = { Text("This is an alert dialog") },
        confirmButton = {
            Button(onClick = { showDialog = false }) {
                Text("OK")
            }
        },
        dismissButton = {
            Button(onClick = { showDialog = false }) {
                Text("Cancel")
            }
        }
    )
}
  • AlertDialog: 创建一个包含确认和取消按钮的对话框。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 16. 刷新布局
    • PullRefresh - 下拉刷新
  • 17. 对话框和弹窗
    • Popup - 弹出框
  • 18. 调试与重组
    • Debug Recomposition - 重组调试
    • remember - 记住状态
  • 19. 工具栏和顶部AppBar
    • TopAppBar - 顶部工具栏
    • Scaffold - 脚手架布局
  • 20. 对话框和模态窗口
    • AlertDialog - 警告对话框
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档