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
上,问题不再发生。
我已经启动了一个待办事项列表应用程序以进入 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
上,问题不再发生。