JetPack ComposeでAndroidを作成していて、一部をComposableとして切り分けたけどうまく動かず、下記のエラーが出てしまいました。
Unresolved reference: weight
調べてもあんまりいい情報はなかったのですがどうやらweightを指定したColumnやRowを利用する際には、Comporseの一番上の階層にはおけないようです。
ReactNativeとかでもViewにそんな仕様があった気がしたので多分同じっぽい。
※あとでドキュメント見つけたらはります
なので、最終的にはColumnでただラップしてあげたら問題なく表示されました。
スタックオーバーフローではインポートを間違えている時にも出ると書いてあるので、
私は違ったけれどもしかしたらそっちの可能性もあるかも。
Equal width elements in Jetpack Compose Row
What is the easiest way to make the width the same for all the children of a Row in Jetpack Compose? For example, if there are 4 Box elements within a Row, I wa...
下記私の参考です。
◾修正前
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
@Composable fun NumberBox(num : Int) { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier .fillMaxWidth() .weight(1f) // <- ここでエラーになっている .border( width = 1.dp, color = Color.DarkGray, ) .clickable() { }, ) { Text( fontSize = 18.sp, textAlign = TextAlign.Center, text = num.toString(), ) } } |
◾修正後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
@Composable fun NumberBox(num : Int) { Column () {// <- ラップしないとweightが使えないようなので追加 Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier .fillMaxWidth() .weight(1f) .border( width = 1.dp, color = Color.DarkGray, ) .clickable() { }, ) { Text( fontSize = 18.sp, textAlign = TextAlign.Center, text = num.toString(), ) } } } |
コメント