Die Anleitung zu Android LinearLayout
View more Tutorials:
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);
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 View android: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 :

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.TOP | top | |
Gravity.CENTER_VERTICAL | center_vertical | |
Gravity.BOTTOM | bottom | |
Gravity.START | start | |
Gravity.END | end | |
Gravity.CENTER | center | |


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>
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:
- TODO Link!