6 kotlin android-jetpack-compose
我的大多数屏幕(视图)都以 Box 可组合项开始,以包含所有子可组合项(组件)。
// background
Box(
modifier = Modifier
.fillMaxSize()
.background(customColor)
)
{
// foreground
Column()
}
Run Code Online (Sandbox Code Playgroud)
您将如何创建可重用的修改器,而不是必须在每个屏幕上创建修改器属性?
在这种简单的情况下,您可以执行以下操作(无需使用then):
fun Modifier.myModifier(customColor: Color) =
this.fillMaxSize()
.background(customColor)
Run Code Online (Sandbox Code Playgroud)
如果您需要使用remember或其他用 注释的状态构建器保存修改器中的任何状态,您可以使用Modifier.composed@Composable来完成。例如,以下是如何向修改器添加动画:
fun Modifier.myModifier(customColor: Color): Modifier = composed {
val animatedColor by animateColorAsState(customColor)
this.fillMaxSize()
.background(animatedColor)
}
Run Code Online (Sandbox Code Playgroud)
请注意,在内部composed您应该只使用带状态注释的可组合项,而不是视图。更多详情可在这找到。
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |