Freigeben über


Xamarin.Android LinearLayout

LinearLayout ist einViewGroup das untergeordnete Element anzeigtView Elemente in linearer Richtung, entweder vertikal oder horizontal.

Sie sollten bei der übermäßigen Verwendung von LinearLayoutvorsichtig sein. Wenn Sie mit dem Verschachteln mehrerer LinearLayouts beginnen, sollten Sie die Verwendung einerRelativeLayout Statt.

Starten Sie ein neues Projekt mit dem Namen HelloLinearLayout.

Öffnen Sie Resources/Layout/Main.axml , und fügen Sie Folgendes ein:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation=    "vertical"
    android:layout_width=    "match_parent"
    android:layout_height=    "match_parent"    >

  <LinearLayout
      android:orientation=    "horizontal"
      android:layout_width=    "match_parent"
      android:layout_height=    "match_parent"
      android:layout_weight=    "1"    >
      <TextView
          android:text=    "red"
          android:gravity=    "center_horizontal"
          android:background=    "#aa0000"
          android:layout_width=    "wrap_content"
          android:layout_height=    "match_parent"
          android:layout_weight=    "1"    />
      <TextView
          android:text=    "green"
          android:gravity=    "center_horizontal"
          android:background=    "#00aa00"
          android:layout_width=    "wrap_content"
          android:layout_height=    "match_parent"
          android:layout_weight=    "1"    />
      <TextView
          android:text=    "blue"
          android:gravity=    "center_horizontal"
          android:background=    "#0000aa"
          android:layout_width=    "wrap_content"
          android:layout_height=    "match_parent"
          android:layout_weight=    "1"    />
      <TextView
          android:text=    "yellow"
          android:gravity=    "center_horizontal"
          android:background=    "#aaaa00"
          android:layout_width=    "wrap_content"
          android:layout_height=    "match_parent"
          android:layout_weight=    "1"    />
  </LinearLayout>
        
  <LinearLayout
    android:orientation=    "vertical"
    android:layout_width=    "match_parent"
    android:layout_height=    "match_parent"
    android:layout_weight=    "1"    >
    <TextView
        android:text=    "row one"
        android:textSize=    "15pt"
        android:layout_width=    "match_parent"
        android:layout_height=    "wrap_content"
        android:layout_weight=    "1"    />
    <TextView
        android:text=    "row two"
        android:textSize=    "15pt"
        android:layout_width=    "match_parent"
        android:layout_height=    "wrap_content"
        android:layout_weight=    "1"    />
    <TextView
        android:text=    "row three"
        android:textSize=    "15pt"
        android:layout_width=    "match_parent"
        android:layout_height=    "wrap_content"
        android:layout_weight=    "1"    />
    <TextView
        android:text=    "row four"
        android:textSize=    "15pt"
        android:layout_width=    "match_parent"
        android:layout_height=    "wrap_content"
       android:layout_weight=    "1"    />
  </LinearLayout>

</LinearLayout>

Überprüfen Sie diesen XML-Code sorgfältig. Es gibt einen Stamm.LinearLayout , die seine Ausrichtung als vertikal definiert– alle untergeordneten Views (von denen es zwei hat) werden vertikal gestapelt. Das erste Kind ist ein weiteres Kind.LinearLayout , die eine horizontale Ausrichtung verwendet, und das zweite untergeordnete Element ist einLinearLayout , die eine vertikale Ausrichtung verwendet. Jedes dieser geschachtelten LinearLayouts enthält mehrereTextView -Elemente, die in der durch ihr übergeordnetes LinearLayout-Element definierten Weise miteinander ausgerichtet sind.

Öffnen Sie nun HelloLinearLayout.cs , und stellen Sie sicher, dass das Layout Resources/Layout/Main.axml imOnCreate()-Methode:

protected override void OnCreate (Bundle savedInstanceState)
{
    base.OnCreate (savedInstanceState);
    SetContentView (Resource.Layout.Main);
}

Die SetContentView(int)) -Methode lädt die Layoutdatei für , die Activitydurch die Ressourcen-ID angegeben wird – Resources.Layout.Main bezieht sich auf die Layoutdatei Resources/Layout/Main.axml .

Führen Sie die Anwendung aus. Daraufhin sollte Folgendes angezeigt werden:

Screenshot: Erste LinearLayout-App horizontal angeordnet, zweite vertikal

Beachten Sie, wie die XML-Attribute das Verhalten jeder Ansicht definieren. Experimentieren Sie mit verschiedenen Werten android:layout_weight , um zu sehen, wie die Bildschirmimmobilie basierend auf der Gewichtung der einzelnen Elemente verteilt wird. Weitere Informationen dazu finden Sie im Dokument Allgemeine Layoutobjekte .LinearLayout behandelt das android:layout_weight -Attribut.

Referenzen

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source-Projekt erstellt und freigegeben wurden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.