Row

Row的排列方式如下。
img

Row的對齊都是控制Child子元件。

在英文文件,會提到Main axis主軸,也就是Row的排列方式是由左至右水平排列。

主軸,控制空格與位置,主軸的參數是Arrangement。

Cross-axis 交叉軸,就是跟Main axis主軸相反,就是垂直位置,垂直位置有:靠上Top、垂直置中CenterVertically、靠下Bottom。

交叉軸,控制位置,交叉軸的參數是,Alignment。

垂直位置

verticalAlignment 設定「子元件」(Child) 垂直對齊方式,不是設定本身元件垂直對齊。

子元件垂直對齊方式 = 靠上對齊
img

1
2
3
4
5
6
7
8
9
10
11
12
13
@Composable
fun testRow() {
  Row(
    modifier = Modifier
      .fillMaxWidth()
      .height(200.dp),
    verticalAlignment = Alignment.Top
  ) {
    Text("Item 1")
    Text("Item 2")
    Text("Item 3")
  }
}

子元件垂直對齊方式 = 靠上對齊
img

1
2
3
4
5
6
7
8
9
10
11
12
13
@Composable
fun testRow() {
  Row(
    modifier = Modifier
      .fillMaxWidth()
      .height(200.dp),
    verticalAlignment = Alignment.CenterVertically
  ) {
    Text("Item 1")
    Text("Item 2")
    Text("Item 3")
  }
}

子元件垂直對齊方式 = 置底
img

1
2
3
4
5
6
7
8
9
10
11
12
13
@Composable
fun testRow() {
  Row(
    modifier = Modifier
      .fillMaxWidth()
      .height(200.dp),
    verticalAlignment = Alignment.Bottom
  ) {
    Text("Item 1")
    Text("Item 2")
    Text("Item 3")
  }
}

水平位置

horizontalArrangement設定「子元件」(Child) 水平對齊方式。

參數是Arrangement,不是Alignment。

預設水平排列方式是靠左。

img

1
2
3
4
5
6
7
8
9
10
11
12
13
@Composable
fun testRow() {
  Row(
    modifier = Modifier
      .fillMaxWidth()
      .height(200.dp),
    horizontalArrangement = Arrangement.Start
  ) {
    Text("Item 1")
    Text("Item 2")
    Text("Item 3")
  }
}

水平排列方式是置中。

img

horizontalArrangement = Arrangement.Center

水平排列方式是靠右。

img

horizontalArrangement = Arrangement.End

SpaceBetween,水平排列方式是均勻分散,左右二邊沒空格。

img

horizontalArrangement = Arrangement.SpaceBetween

SpaceEvenly,水平排列方式是均勻分散,左右有空格。
img

horizontalArrangement = Arrangement.SpaceEvenly

SpaceAround,水平排列方式是元素周圍間距相等,item1與item2,item2與item3,二個間距是相同。

··[item1]···[item2]···[item3]··

item1與item2是3個空格。
item2與item3是3個空格。

img

horizontalArrangement = Arrangement.SpaceAround

水平排列方式比較:

Start:     [A][B][C]·········
Center:    ····[A][B][C]·····
End:       ········[A][B][C]
SpaceBetween: [A]····[B]····[C]
SpaceEvenly: ·[A]····[B]····[C]·
SpaceAround: ··[A]···[B]···[C]··

以下是舊文章

1
2
3
4
5
6
7
8
9
10
11
12
Row(
  modifier = Modifier
    .size(200.dp)
    .background(Color.Green)
){
  Text(
    "Column First Item",
    modifier = Modifier.weight(1f, true)
  )
  Text("Column Second Item",
    modifier = Modifier.weight(1f, true))
}

img

results matching ""

    No results matching ""