Zeichnen Sie eine Linie in Jetpack Compose

Lesezeit: 2 Minuten

Benutzeravatar von Mahdi-Malv
Mahdi-Malv

Mit dem XML-Layout könnten Sie ein View-Objekt mit farbigem Hintergrund verwenden, um eine Linie zu zeichnen.

<View
   android:width="match_parent"
   android:height="1dp"
   android:background="#000000" />

Wie können wir zeichne ein horizontal oder vertikal Zeile in Jetpack komponieren?

Benutzeravatar von Rajnish suryavanshi
Rajnish suryavanshi

Sie können verwenden

Teiler zusammensetzbar

Methode für Horizontal Linie wie unten.

Divider(color = Color.Blue, thickness = 1.dp)

Beispiel :

@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)

                }
            }
        }

    }

}

  • Divider‘s height Parameter wurde umbenannt in thickness

    – RickSanchez725

    30. September 2020 um 11:55 Uhr


  • Was ist, wenn wir nicht möchten, dass es über die gesamte Breite passt? Ich möchte nur eine Linie mit fester Breite und fester Dicke, die durch Gesten interaktiv sein soll.

    – Richard OnslowRoper

    25. Oktober 2021 um 3:59 Uhr

  • @MARSK verwenden Sie dann einfach ein farbiges Kästchen, was ist was Divider tut intern – es ist ein super einfacher Wrapper, der zusammengesetzt werden kann: Box(modifier.then(indentMod).fillMaxWidth().height(thickness).background(color = color))

    – Lukas Needham

    12. Januar um 12:36 Uhr


Benutzeravatar von Valeriy Katkov
Walerij Katkow

Um eine Linie zu zeichnen, können Sie das eingebaute verwenden androidx.compose.material.Divider wenn du benutzt androidx.compose.material oder erstellen Sie Ihre eigenen mit dem gleichen Ansatz wie der Materialteiler:

Horizontale Linie

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))
}

Geben Sie hier die Bildbeschreibung ein

Vertikale Linie

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))
}

Geben Sie hier die Bildbeschreibung ein

1431940cookie-checkZeichnen Sie eine Linie in Jetpack Compose

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy