![](/img/trans.png)
[英]How to mirror a composable function made by canvas with Modifier?
[英]How can I make a composable function with `weight` modifier?
當我有
Column {
Button(onClick = { /*TODO*/ },) {
Text("Original Window")
}
Button(onClick = { /*TODO*/ }) {
Text("Fit System Window")
}
}
我可以創建一個通用的可組合 function
@Composable
fun MyButton(
onClick: () -> Unit,
content: @Composable RowScope.() -> Unit
) {
Button(
onClick = onClick,
content = content
)
}
Column {
MyButton(onClick = { /*TODO*/ },) {
Text("Original Window")
}
MyButton(onClick = { /*TODO*/ }) {
Text("Fit System Window")
}
}
但是,當我有
Column {
Button(onClick = { /*TODO*/ },
modifier = Modifier.weight(1f)) {
Text("Original Window")
}
Button(onClick = { /*TODO*/ },
modifier = Modifier.weight(1f)) {
Text("Fit System Window")
}
}
我無法在下面創建
@Composable
fun MyButton(
onClick: () -> Unit,
content: @Composable RowScope.() -> Unit
) {
Button(
onClick = onClick,
modifier = Modifier.weight(1f),
content = content
)
}
Column {
MyButton(onClick = { /*TODO*/ },) {
Text("Original Window")
}
MyButton(onClick = { /*TODO*/ }) {
Text("Fit System Window")
}
}
這是因為weight
修飾符在ColumnScope
接口下。
如何使用weight
修改器制作可組合的 function?
看起來我只需要從ColumnScope
創建一個擴展
@Composable
fun ColumnScope.MyButton(
onClick: () -> Unit,
content: @Composable RowScope.() -> Unit
) {
Button(
onClick = onClick,
modifier = Modifier.weight(1f),
content = content
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.