我正在嘗試使用Jetpack Compose,但我對Row的行為感到困惑。我在一個圖示按鈕旁邊有一個文本,我想把圖示按鈕固定在側面,最小寬度為48dp,并讓文本環繞它。像這樣:
@Composable。
fun SampleLayout(text: String) {
行(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
) {
Text(文本)
IconButton(
onClick = { },
) {
圖示(
imageVector = androidx.compose.material.icons.Icons.Default.StarBorder,
null @Preview(showBackground = true, backgroundColor = 0x006EA0, fontScale = 1.5F)
@Composable
fun SamplePreview1() {
Box(Modifier.padding(16.dp)) {
SampleLayout("helooooo")
}
}
@Preview(showBackground = true, backgroundColor = 0x006EA0, fontScale = 1.5F)
@Composable
fun SamplePreview2() {
Box(Modifier.padding(16.dp)) {
SampleLayout("helooooooooooooooooo")
}
}
@Preview(showBackground = true, backgroundColor = 0x006EA0, fontScale = 1.5F)
@Composable
fun SamplePreview3() {
Box(Modifier.padding(16.dp)) {
SampleLayout("helooooooooooooooooooooooooo")
}
}
我試著設定圖示的最小寬度為48dp,但是文本仍然填充到了行的末端。
我怎樣才能確保文本的寬度不會超過圖示按鈕的寬度呢?
uj5u.com熱心網友回復:
默認情況下,Text具有比Icon更高的布局優先級,以填補必要的空間。您可以通過weight修改器來改變這一點。
使用此修改器后,Icon的大小將在Text之前計算:
父元素將劃分出測量完未加權的子元素后剩余的垂直空間另外
weight有一個fill引數,默認設定為true。這相當于fillMaxWidth(當weight被用于Row內部時),所以您可以在您的父類中跳過fillMaxWidth修改器。當你不需要這種行為時,請將false傳遞給這個引數。Row( horizontalArrangement = Arrangement.SpaceBetween, ) { Text(text, modifier = Modifier.weight(1f) IconButton( onClick = { } ) { 圖示( imageVector = Icons.Default.StarBorder, null。 ) } }uj5u.com熱心網友回復:
試試這個
fun SampleLayout(text: String) { 行( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, ) { Text(text = 文本) IconButton( modifier = Modifier.weight(1f, fill = false), //You must add the false fill here to keep it from occuping all the available space。 onClick = { }, ) { 圖示( imageVector = androidx.compose.material.icons.Icons.Default.StarBorder。 null轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/313081.html
標籤:


