codestory

Die Anleitung zu Android LinearLayout

  1. Android LinearLayout
  2. android:layout_weight
  3. android:layout_gravity
  4. android:padding
  5. LinearLayout spacing

1. Android LinearLayout

LinearLayout ist ein ViewGroup , die die untergeordneten View in einer einzigen Richtung anordnet, entweder vertikal oder horizontal. Sie können die Ausrichtung mithilfe des Attributs android:orientation.
<!-- Horizontal LinearLayout (Default) -->
<LinearLayout
    ...
    android:orientation="horizontal">

   ...
</LinearLayout>


<!-- Vertical LinearLayout -->
<LinearLayout
    ...
    android:orientation="vertical">

   ...
</LinearLayout>
Z.B: Verwenden Sie die Code Java um LinearLayout zu erstellen und die untergeordneten View in LinearLayout hinzufügen:
// linearLayout = new LinearLayout(MainActivity.this);
// linearLayout.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout.LayoutParams layoutParams
        = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
        LinearLayout.LayoutParams.WRAP_CONTENT, 0);

Button button1 = new Button(this);
button1.setText("Button");
linearLayout.addView(button1, layoutParams);

Button button2 = new Button(this);
button2.setText("Long Button");
button2.setLayoutParams(layoutParams);
linearLayout.addView(button2);

2. android:layout_weight

android:layout_weight ist ein wichtiges Attribut, das für untergeordnete View vom LinearLayout verwendet wird. Es bestimmt, wieviel Plätze die untergeordneten View in der übergeordneten View (LinearLayout) einnehmen (horizontal oder vertikal). Ein Wert layout_weight größer als 0 kann die untergeordnete View erweitert werden, um den verbleibenden Platz in der übergeordneten View zu füllen. Die untergeordnete View können mit dem Wert layout_weight > 0 angegeben werden. Anschließend wird der verbleibende Platz in der übergeordneten View den untergeordneten View entsprechend ihrem Verhältnis von layout_weight zugewieden.
Wenn alle untergeordneten Viewandroid:layout_weight=0 hat, werden Sie einen leeren Platz in den übergeordneten View (LinearLayout):
Die untergeordneten View mit android:layout_weight>0 wird den freien Platz vom übergeordneten View (LinearLayout):
Der freie Platz vom übergeordneten View (LinearLayout) wird für die untergeordneten View entsprechend ihrem Verhältnis von layout_weight lokalisiert.
Das Attribut android:layout_weight hat die ähnliche Bedeutung in einem vertikalen LinearLayout :

3. android:layout_gravity

Das Attribut android:layout_gravity wird für die untergeordnete View angewendet um die relative Position vom untergeordneten View innerhalb vom übergeordneten View (LinearLayout) zu bestimmen.
Constant in Java
Value
Description
Gravity.LEFT
left
Gravity.CENTER_HORIZONTAL
center_horizontal
Gravity.RIGHT
right
Gravity.CLIP_HORIZONTAL
clip_horizontal
Gravity.FILL_HORIZONTAL
fill_horizontal
Gravity.TOP
top
Gravity.CENTER_VERTICAL
center_vertical
Gravity.BOTTOM
bottom
Gravity.CLIP_VERTICAL
clip_vertical
Gravity.FILL_VERTICAL
fill_vertical
Gravity.START
start
Gravity.END
end
Gravity.CENTER
center
Gravity.FILL
fill

4. android:padding

Padding ist der Plazt in LinearLayout (innerhalb der Ränder), und die 4 Seiten der Inhalt umgeben.
Sie können padding für LinearLayout durch die folgenden Attributen einstellen:
  • android:padding
  • android:paddingTop
  • android:paddingRight
  • android:paddingBottom
  • android:paddingLeft
<LinearLayout
    ...
    android:orientation="horizontal"
    android:paddingTop="20dp"
    android:paddingRight="30dp"
    android:paddingBottom="10dp"
    android:paddingLeft="20dp">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Button" />

</LinearLayout>

5. LinearLayout spacing

Wenn Sie manchmal den Platz zwischen die untergeordneten View vom LinearLayout einstellen möchten, gibt es einige Wege für Sie, dies durchzuführen:
android:layout_margin
Die Anwendung vom Attribut android:layout_margin für alle untergeordneten View für LinearLayout hilft bei der Abstandfestlegung zwischen ihnen.
* layout_margin (Java code) *
// linearLayout = new LinearLayout(MainActivity.this);
// linearLayout.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout.LayoutParams layoutParams
        = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                          LinearLayout.LayoutParams.WRAP_CONTENT, 0);
layoutParams.setMargins(30, 20, 30, 0);

Button button1 = new Button(this);
button1.setText("Button");
linearLayout.addView(button1, layoutParams);

Button button2 = new Button(this);
button2.setText("Long Button");
button2.setLayoutParams(layoutParams);
linearLayout.addView(button2);
Space View
Android 4.0+ (API Level 14+) unterstützt ein neues Typ View namens Space, mit dem Sie einen leeren Platz in die Interface hinzufügen. Sie können Space verwenden um die untergeordneten View innerhalb LinearLayout zu trennen.
<LinearLayout
    ...
    android:layout_width="0dp"
    android:layout_height="200dp"
    android:background="#EFF6E7"
    android:orientation="horizontal">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Button" />

    <Space
        android:layout_width="10dp"
        android:layout_height="wrap_content"
        android:layout_weight="0" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Long Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Button" />
</LinearLayout>
* Add Space (Java code) *
// linearLayout = new LinearLayout(MainActivity.this);
// linearLayout.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout.LayoutParams layoutParams
        = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
        LinearLayout.LayoutParams.WRAP_CONTENT, 0);

LinearLayout.LayoutParams layoutParams2
        = new LinearLayout.LayoutParams(15,
        LinearLayout.LayoutParams.WRAP_CONTENT, 0);

Button button1 = new Button(this);
button1.setText("Button");
linearLayout.addView(button1, layoutParams);

// Create a Space View.
Space space = new Space(this);
space.setLayoutParams(layoutParams2);
linearLayout.addView(space);

Button button2 = new Button(this);
button2.setText("Long Button");
button2.setLayoutParams(layoutParams);
linearLayout.addView(button2);
android:divider
Android 3.0+ (API Level 11+) können Sie einen Divider zwischen die 2 untergeordneten View in LinearLayout hinzufügen. Darüber hinaus können Sie den Stil und die Farbe für Divider festlegen.
* Divider *
<LinearLayout
    ...
    android:orientation="horizontal">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Button" />
  
     <!-- Divider -->
    <View
        android:id="@+id/divider"
        android:layout_width="15dp"
        android:layout_height="match_parent"
        android:layout_weight="0"
        android:background="?android:attr/listDivider" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Long Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="Button" />
</LinearLayout>
* Add Divider (Java code) *
// linearLayout = new LinearLayout(MainActivity.this);
// linearLayout.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout.LayoutParams layoutParams
        = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
        LinearLayout.LayoutParams.WRAP_CONTENT, 0);

LinearLayout.LayoutParams layoutParams2
        = new LinearLayout.LayoutParams(15,
        LinearLayout.LayoutParams.MATCH_PARENT, 0);

Button button1 = new Button(this);
button1.setText("Button");
linearLayout.addView(button1, layoutParams);

// Create a Divider.
View divider = new View(this);
// android:background="?android:attr/listDivider"
divider.setBackgroundResource(android.R.drawable.divider_horizontal_bright);
linearLayout.addView(divider, layoutParams2);

Button button2 = new Button(this);
button2.setText("Long Button");
button2.setLayoutParams(layoutParams);
linearLayout.addView(button2);
Sehen Sie den detailierten Artikel über Divider, damit Sie Divider entsprechend Ihrer Anwendung anpassen können:
  • Die Anleitung zu Android Divider

Anleitungen Android

Show More