在 Jetpack Compose 中画一条线
Draw a line in jetpack compose
使用 XML 布局,您可以使用带有彩色背景的视图对象来绘制一条线。
<View
android:width="match_parent"
android:height="1dp"
android:background="#000000" />
我们如何在 Jetpack compose 中绘制水平或垂直线?
您可以使用
Divider Composable
水平线的方法如下。
Divider(color = Color.Blue, thickness = 1.dp)
示例:
@Composable
fun drawLine(){
MaterialTheme {
VerticalScroller{
Column(modifier = Spacing(16.dp), mainAxisSize = LayoutSize.Expand) {
(0..3).forEachIndexed { index, i ->
Text(
text = "Draw Line !",
style = TextStyle(color = Color.DarkGray, fontSize = 22.sp)
)
Divider(color = Color.Blue, thickness = 2.dp)
}
}
}
}
}
要绘制一条线,您可以使用内置的 androidx.compose.material.Divider if you use androidx.compose.material 或使用与 material 分隔线相同的方法创建您自己的线:
水平线
Column(
// forces the column to be as wide as the widest child,
// use .fillMaxWidth() to fill the parent instead
// https://developer.android.com/jetpack/compose/layout#intrinsic-measurements
modifier = Modifier.width(IntrinsicSize.Max)
) {
Text("one", Modifier.padding(4.dp))
// use the material divider
Divider(color = Color.Red, thickness = 1.dp)
Text("two", Modifier.padding(4.dp))
// or replace it with a custom one
Box(
modifier = Modifier
.fillMaxWidth()
.height(1.dp)
.background(color = Color.Red)
)
Text("three", Modifier.padding(4.dp))
}
竖线
Row(
// forces the row to be as tall as the tallest child,
// use .fillMaxHeight() to fill the parent instead
// https://developer.android.com/jetpack/compose/layout#intrinsic-measurements
modifier = Modifier.height(IntrinsicSize.Min)
) {
Text("one", Modifier.padding(4.dp))
// use the material divider
Divider(
color = Color.Red,
modifier = Modifier
.fillMaxHeight()
.width(1.dp)
)
Text("two", Modifier.padding(4.dp))
// or replace it with a custom one
Box(
modifier = Modifier
.fillMaxHeight()
.width(1.dp)
.background(color = Color.Red)
)
Text("three", Modifier.padding(4.dp))
}
使用 XML 布局,您可以使用带有彩色背景的视图对象来绘制一条线。
<View
android:width="match_parent"
android:height="1dp"
android:background="#000000" />
我们如何在 Jetpack compose 中绘制水平或垂直线?
您可以使用
Divider Composable
水平线的方法如下。
Divider(color = Color.Blue, thickness = 1.dp)
示例:
@Composable
fun drawLine(){
MaterialTheme {
VerticalScroller{
Column(modifier = Spacing(16.dp), mainAxisSize = LayoutSize.Expand) {
(0..3).forEachIndexed { index, i ->
Text(
text = "Draw Line !",
style = TextStyle(color = Color.DarkGray, fontSize = 22.sp)
)
Divider(color = Color.Blue, thickness = 2.dp)
}
}
}
}
}
要绘制一条线,您可以使用内置的 androidx.compose.material.Divider if you use androidx.compose.material 或使用与 material 分隔线相同的方法创建您自己的线:
水平线
Column(
// forces the column to be as wide as the widest child,
// use .fillMaxWidth() to fill the parent instead
// https://developer.android.com/jetpack/compose/layout#intrinsic-measurements
modifier = Modifier.width(IntrinsicSize.Max)
) {
Text("one", Modifier.padding(4.dp))
// use the material divider
Divider(color = Color.Red, thickness = 1.dp)
Text("two", Modifier.padding(4.dp))
// or replace it with a custom one
Box(
modifier = Modifier
.fillMaxWidth()
.height(1.dp)
.background(color = Color.Red)
)
Text("three", Modifier.padding(4.dp))
}
竖线
Row(
// forces the row to be as tall as the tallest child,
// use .fillMaxHeight() to fill the parent instead
// https://developer.android.com/jetpack/compose/layout#intrinsic-measurements
modifier = Modifier.height(IntrinsicSize.Min)
) {
Text("one", Modifier.padding(4.dp))
// use the material divider
Divider(
color = Color.Red,
modifier = Modifier
.fillMaxHeight()
.width(1.dp)
)
Text("two", Modifier.padding(4.dp))
// or replace it with a custom one
Box(
modifier = Modifier
.fillMaxHeight()
.width(1.dp)
.background(color = Color.Red)
)
Text("three", Modifier.padding(4.dp))
}