Compartir a través de


Xamarin.Android LinearLayout

LinearLayout es un objeto ViewGroup que muestra los elementos View secundarios en una dirección lineal, vertical o horizontalmente.

Debe tener cuidado con el uso excesivo de LinearLayout. Si comienza por anidar varios elementos LinearLayout, es posible que desee considerar la posibilidad de usar RelativeLayout en su lugar.

Inicie un proyecto denominado HelloLinearLayout.

Abra Resources/Layout/Main.axml e inserte lo siguiente:

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

Inspeccione cuidadosamente este XML. Hay una raíz LinearLayout que define que su orientación sea vertical: todos los elementos View secundarios (de los que tiene dos) se apilarán verticalmente. El primer elemento secundario es otro LinearLayout que usa una orientación horizontal, mientras que el segundo es LinearLayout y usa una orientación vertical. Cada uno de estos elementos LinearLayout anidados contiene varios elementos TextView, que se orientan entre sí de la manera que define su elemento LinearLayout principal.

Ahora abra HelloLinearLayout.cs y asegúrese de que carga el diseño Resources/Layout/Main.axml en el Método OnCreate():

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

El método SetContentView(int)) carga el archivo de diseño de Activity, especificado por el identificador de recurso (Resources.Layout.Main hace referencia al archivo de diseño Resources/Layout/Main.axml).

Ejecute la aplicación. Verá lo siguiente:

Screenshot of app first LinearLayout arranged horizontally, second vertically

Observe la forma en que los atributos XML definen el comportamiento de cada elemento View. Pruebe a usar valores diferentes para android:layout_weight, con el fin de ver cómo se distribuye el espacio en pantalla en función del peso de cada elemento. Consulte el documento sobre objetos de diseño comunes, ya que en él encontrará más información sobre la forma en que LinearLayout controla el atributo android:layout_weight.

Referencias

Partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.