TextDecoration 不适用于 LazyColumn 项目

TextDecoration not applying in LazyColumn item

我已经启动了一个待办事项列表应用程序以进入 Jetpack Compose。这是我到目前为止所得到的。

我有一个 Todo 的可组合项:

@Composable
fun Todo(
    todo: TodoItem = TodoItem()
) {
    Row() {
        Checkbox

        Spacer

        if (todo.editing)
            EditTodo(todo, onEditingFinished = onEditingFinished)
        else
            TodoText(todo = todo)
    }
}

我省略了此处的样式位以突出显示实际组件

作为参考,这里是 TodoItem:

data class TodoItem(
    val id: String,
    val title: String,
    val done: Boolean,
    val editing: Boolean,
    val createdAt: Date,
)

TodoText 方法是我认为我的问题所在:

@Composable
private fun TodoText(todo: TodoItem) {
    Text(
        text = todo.title,
        style = if (todo.done)
            TextStyle(
                textDecoration = TextDecoration.LineThrough,
                color = Color.LightGray,
                fontSize = 18.sp,
            )
        else
            TextStyle(
                textDecoration = TextDecoration.None,
                color = Color.Black,
                fontSize = 18.sp,
            )
    )
}

如果待办事项完成,我想相应地更改文本样式,正如您从下面的 gif 中看到的那样,颜色正确更改,但装饰保持 LineThrough:


就是说,我不知道到底发生了什么。我确实将所有这些都放在 LazyColumFor 中,我可能无法正确回收视图,混合中还有一个具有可变状态的视图模型......总而言之,这里可能有更多的东西在工作。我已将代码添加到 github。如果你想检查它,请使用这个branch。我计划通过更改代码不断更新 master

显然,这是我使用的 compose 版本的问题,即 1.0.0-alpha04

1.0.0-alpha06 上,问题不再发生。