Udostępnij za pośrednictwem


Xamarin.Android LinearLayout

LinearLayout jest ViewGroup wyświetla element podrzędny View elementy w kierunku liniowym, pionowo lub poziomo.

Należy zachować ostrożność przy użyciu polecenia LinearLayout. Jeśli zaczniesz zagnieżdżać wiele LinearLayouts, warto rozważyć użycie elementu RelativeLayout Zamiast.

Uruchom nowy projekt o nazwie HelloLinearLayout.

Otwórz plik Resources/Layout/Main.axml i wstaw następujące elementy:

<?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>

Dokładnie sprawdź ten kod XML. Istnieje katalog główny LinearLayout definiujący jego orientację w pionie — wszystkie elementy podrzędne View(z których ma dwa) zostaną ułożone w pionie. Pierwsze dziecko jest innym LinearLayout który używa orientacji poziomej, a drugie podrzędne jest LinearLayout używa orientacji pionowej. Każdy z tych zagnieżdżonych LinearLayoutelementów zawiera kilka TextView elementy, które są ze sobą zorientowane w sposób zdefiniowany przez ich element nadrzędny LinearLayout.

Teraz otwórz HelloLinearLayout.cs i upewnij się, że ładuje on układ Resources/Layout/Main.axml w pliku OnCreate() Metoda:

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

Metoda SetContentView(int)) ładuje plik układu dla Activityelementu , określony przez identyfikator zasobu — Resources.Layout.Main odwołuje się do pliku układu Resources/Layout/Main.axml .

Uruchom aplikację. Powinien zostać wyświetlony następujący ekran:

Screenshot of app first LinearLayout arranged horizontally, second vertically

Zwróć uwagę, że atrybuty XML definiują zachowanie każdego widoku. Spróbuj poeksperymentować z różnymi wartościami, android:layout_weight aby zobaczyć, jak nieruchomości ekranu są dystrybuowane na podstawie wagi każdego elementu. Aby uzyskać więcej informacji na temat sposobu, zobacz dokument Common Layout Objects (Wspólne obiekty układu)LinearLayoutandroid:layout_weight obsługuje atrybut .

Informacje

Części tej strony to modyfikacje oparte na pracy utworzonej i udostępnionej przez projekt open source systemu Android i używane zgodnie z warunkami opisanymi w licencji autorstwa Creative Commons 2.5.