在编写合成代码时,我们经常使用MaterialTheme代码。有办法缩短代码的这一部分吗?例如:mColor.primay
发布于 2022-08-15 11:03:38
我认为最好的答案是:
val mColors: MColor() @Composable get() = MyTheme.colors我们可以这样称呼颜色:mColors.primary,我们也可以为排版,形状和尺寸做这个。
发布于 2022-08-14 13:30:04
这不是一个Jetpack组合解决方案-更多的是“使用Kotlin语言特性”。
您可以使用with作用域函数来生成MaterialTheme,这是一个object,是一个隐式接收器。然后,您可以引用colors.primary或colors.whatever,而不必说MaterialTheme。
您可以用一个with块包围整个封闭函数:
@Composable
fun foo() {
with(MaterialTheme) {
// compose your view here...
// and you can say "colors.primary" instead of
// "MaterialTheme.colors.primary" in here
}
}或者,只需使用类型别名来缩短名称MaterialTheme:
typealias MT = MaterialTheme
// now you can say "MT.colors.primary" instead of "MaterialTheme.colors.primary"发布于 2022-08-14 13:12:45
我想这可以用不同的方式来完成。其中之一是
val mColor
get() = @Composable{
MaterialTheme.colors
}用法
mColor().primaryhttps://stackoverflow.com/questions/73351839
复制相似问题