Chaining Modifier 基于 Android Compose 中的特定条件
Chaining Modifier based on certain conditions in Android Compose
我想以这样的方式应用修饰符,如果提供了宽度,它应该使用提供的宽度,否则使用可用的最大宽度。
我正在按以下方式应用修改器,但结果与预期不符。
视图宽度变得混乱。在此请求指导。
val myModifier = Modifier.padding(
start = 4.dp, end = 4.dp, top = 8.dp, bottom = 8.dp
)
if (viewWidth == null)
myModifier.then(Modifier.fillParentMaxWidth(1f))
else
myModifier.then(Modifier.width(viewWidth))
myModifier.then(
Modifier.height(viewHeight ?: 100.dp)
.clickable(onClick = { listener.onItemClick(item) })
)
Modifier
有一个 then
函数来连接当前修饰符和另一个修饰符。这个then
函数returns一个你没用过的新修饰符。您必须使用返回的修饰符重新初始化 myModifier
变量。
检查以下代码:
var myModifier = Modifier.padding(
start = 4.dp, end = 4.dp, top = 8.dp, bottom = 8.dp
)
if (viewWidth == null)
myModifier = myModifier.then(Modifier.fillParentMaxWidth(1f))
else
myModifier = myModifier.then(Modifier.width(viewWidth))
myModifier = myModifier.then(
Modifier
.height(viewHeight ?: 100.dp)
.clickable(onClick = { listener.onItemClick(item) })
)
我想以这样的方式应用修饰符,如果提供了宽度,它应该使用提供的宽度,否则使用可用的最大宽度。
我正在按以下方式应用修改器,但结果与预期不符。 视图宽度变得混乱。在此请求指导。
val myModifier = Modifier.padding(
start = 4.dp, end = 4.dp, top = 8.dp, bottom = 8.dp
)
if (viewWidth == null)
myModifier.then(Modifier.fillParentMaxWidth(1f))
else
myModifier.then(Modifier.width(viewWidth))
myModifier.then(
Modifier.height(viewHeight ?: 100.dp)
.clickable(onClick = { listener.onItemClick(item) })
)
Modifier
有一个 then
函数来连接当前修饰符和另一个修饰符。这个then
函数returns一个你没用过的新修饰符。您必须使用返回的修饰符重新初始化 myModifier
变量。
检查以下代码:
var myModifier = Modifier.padding(
start = 4.dp, end = 4.dp, top = 8.dp, bottom = 8.dp
)
if (viewWidth == null)
myModifier = myModifier.then(Modifier.fillParentMaxWidth(1f))
else
myModifier = myModifier.then(Modifier.width(viewWidth))
myModifier = myModifier.then(
Modifier
.height(viewHeight ?: 100.dp)
.clickable(onClick = { listener.onItemClick(item) })
)