LinearLayout

Kontajner LinearLayout usporiadava vnorené widgety (tie, ktoré v sebe obsahuje) do riadku, alebo do stĺpca. Okrem nastavenia orientácie objektov, môžeme špecifikovať váhu objektov, gravitáciu, medzery medzi widgetami.

Orientácia

XML atribút:

android:orientation=“horizontal“
android:orientation=“vertical“

Aktivita:

LinearLayout mojLayout = findViewById(R.id.linearnyLayout1);
mojLayout.setOrientation(LinearLayout.VERTICAL);
mojLayout.setOrientation(LinearLayout.HORIZONTAL);

Príklad usporiadania tlačidiel vertikálne – pozri príklad 1 - zarovnanie objektov. Usporiadanie tlačidiel horizontálne – príklad 2.

Zarovnanie objektov

Pokiaľ nenastavíme inak, tak všetky widgety, ktoré sa nachádzajú v LinearLayout sa zarovnajú vľavo hore.

XML atribút pre zarovnávanie objektov

android:layout_gravity=“center“

Aktivita:

inštanciaTlačidla.setGravity(Gravity.RIGHT);

Príklad 1.
Tri tlačidlá zarovnané vertikálne v kontajnery LinearLayout. Prvé tlačidlo je zarovnané na stred, druhé je zarovnané naľavo (default stav), tretie tlačidlo je zarovnané napravo.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <Button         android:text="Tlačidlo 1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:id="@+id/button1"         android:layout_gravity="center"/>
    <Button         android:text="Tlačidlo 2"         android:layout_width="wrap_content"         android:layout_height="wrap_content"
        android:id="@+id/button2" />

    <Button
        android:text="Tlačidlo 3"         android:layout_width="wrap_content"         android:layout_height="wrap_content"
        android:id="@+id/button3"         android:layout_gravity="right"/>

</LinearLayout>

 Váha objektov

Tento atribút určuje objem miesta, ktoré bude pridelené konkrétnemu widgetu.

XML atribút:

android:layout_weight=“1“

Príklad 2.
Predstavme si, že máme tri tlačidlá zarovnané vedľa seba horizontálne. Prvé a druhé tlačidlo budú mať prirodzenú šírku a tretie tlačidlo bude zaberať zvyšok miesta.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">


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

    <Button
        android:text="Tlačidlo 2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:layout_weight="0"/>

    <Button
        android:text="Tlačidlo 3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button3"
        android:layout_weight="1"/>

</LinearLayout>

Prirodzenú veľkosť – šírku predstavuje hodnota atribútu android:layout_weight 0. Hodnota atribútu tretieho tlačidla je nastavená na 1.

 Príklad 3.
Prvé a tretie tlačidlo budú mať rovnakú šírku a druhé tlačidlo bude mať polovičnú veľkosť ako prvé alebo tretie tlačidlo.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Button
        android:text="Tlačidlo 1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:layout_weight="1"/>
    <Button
        android:text="Tlačidlo 2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:layout_weight="0.5"/>
    <Button
        android:text="Tlačidlo 3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/button3"
        android:layout_weight="1"/>
</LinearLayout>

V tomto prípade sme nastavili všetkým tlačidlám atribút android:layout_width na hodnotu 0dp. Honota atribútu android:layout_width pre prvé a tretie tlačidlo sme nastavili na hodnotu 1dp a druhému tlačidlo sme nastavili polovičnú hodnotu, teda 0.5dp