You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中Compose的Divider()函数被划掉的解决办法咨询

解决Material3 Divider显示删除线(废弃标记)的问题

核心原因

你调用的无参Divider()函数在当前使用的Material3版本中已被标记为废弃,同时代码中还存在其他语法/逻辑问题导致运行异常。

解决步骤

1. 更新Material3依赖版本

打开模块级build.gradle文件,确保Material3依赖使用最新稳定版,示例:

implementation "androidx.compose.material3:material3:1.2.1"

同步项目后重新编译。

2. 使用非废弃的Divider重载函数

替换无参Divider()为带参数的版本,既规避废弃标记,还能自定义样式,示例:

Divider(
    modifier = Modifier.padding(vertical = 12.dp, horizontal = 12.dp),
    color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.12f)
)

3. 修复代码中的其他问题

你的代码存在语法错误、状态管理错误和逻辑错误,以下是修复后的完整App函数:

@Composable
fun App(){
    var item by remember{
        mutableStateOf("something")
    }
    // 使用mutableStateListOf才能触发重组更新UI
    val items = remember { mutableStateListOf<String>() }
    FirstAprilTemplateTheme {
        Surface(
            modifier = Modifier.fillMaxSize(),
            color = MaterialTheme.colorScheme.background
        ) {
            // 所有Composable需包裹在同一个布局容器内
            Column(modifier = Modifier.padding(12.dp)) {
                Text(
                    text = "To Do list!",
                    fontSize = 32.sp,
                    fontWeight = FontWeight.Bold,
                    modifier = Modifier.padding(bottom = 12.dp)
                )

                OutlinedTextField(
                    value = item,
                    onValueChange = { item = it },
                    label = { Text(text = "New Item") },
                    modifier = Modifier.fillMaxWidth().padding(bottom = 8.dp)
                )

                Row(modifier = Modifier.fillMaxWidth()) {
                    OutlinedTextField(
                        value = item,
                        onValueChange = { item = it },
                        label = { Text(text = "New Item") },
                        modifier = Modifier.weight(1f).padding(end = 8.dp)
                    )

                    Button(onClick = {
                        // 修正逻辑:非空内容才添加
                        if (item.isNotEmpty()) {
                            items.add(item)
                            item = ""
                        }
                    }) {
                        Text(text = "Save")
                    }
                }

                // 使用非废弃的Divider
                Divider(
                    modifier = Modifier.padding(vertical = 12.dp),
                    color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.12f)
                )

                Column(){
                    for (todoItem in items){
                        ToDoListItem(name = todoItem)
                    }
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者user29877730

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:43:29