LinearLayout, tüm alt öğeleri tek bir yönde (dikey veya yatay) hizalayan bir görünüm grubudur. Düzen yönünü android:orientation özelliğiyle belirtebilirsiniz.
LinearLayout.
LinearLayout öğesinin tüm alt öğeleri üst üste yerleştirilir. Bu nedenle, dikey listede genişliklerinden bağımsız olarak satır başına yalnızca bir alt öğe bulunur. Yatay liste yalnızca bir satır yüksekliğindedir ve en uzun alt öğenin yüksekliği ile dolguya eşittir. Bir LinearLayout, alt öğeler arasındaki boşluklara ve her alt öğenin yerleşimine (sağ, orta veya sol hizalama) saygı gösterir.
Düzen ağırlığı
LinearLayout, weight özelliğini android:layout_weight özelliğiyle birlikte kullanarak her bir alt öğeye ayrı ayrı atamayı da destekler. Bu özellik, bir görünüme ekranda kapladığı alan açısından "önem" değeri atar. Daha büyük bir ağırlık değeri, ebeveyn görünümünde kalan alanı doldurmak için genişlemesine olanak tanır. Alt görünümler bir ağırlık değeri belirtebilir ve görünüm grubundaki kalan alan, bildirilen ağırlıklarına göre orantılı olarak alt görünümlere atanır. Varsayılan ağırlık sıfırdır.
Eşit dağıtım
Her alt öğenin ekranda aynı miktarda alan kullandığı doğrusal bir düzen oluşturmak için dikey düzenlerde her görünümün android:layout_height değerini "0dp", yatay düzenlerde ise her görünümün android:layout_width değerini "0dp" olarak ayarlayın. Ardından, her görünümün android:layout_weight özelliğini "1" olarak ayarlayın.
Eşit olmayan dağıtım
Ayrıca, alt öğelerin ekranda farklı miktarlarda alan kullandığı doğrusal düzenler de oluşturabilirsiniz. Aşağıdaki örnekleri inceleyin:
- Üç metin alanınız olduğunu varsayalım: İkisi 1 ağırlık değerine, üçüncüsü ise varsayılan 0 ağırlık değerine sahip. Ağırlık değeri 0 olan üçüncü metin alanı, yalnızca içeriğinin gerektirdiği alanı kaplar. Ağırlık değeri 1 olan diğer iki metin alanı, üç alanın içeriği ölçüldükten sonra kalan alanı doldurmak için eşit şekilde genişler.
- Bunun yerine, ikisi 1 ağırlık değerine, üçüncüsü ise 2 ağırlık değerine sahip üç metin alanınız varsa üç alanın içeriği ölçüldükten sonra kalan alan şu şekilde ayrılır: Yarısı 2 ağırlık değerine sahip alana, yarısı ise 1 ağırlık değerine sahip alanlar arasında eşit olarak bölünür.
Aşağıdaki şekil ve kod snippet'inde, düzen ağırlıklarının "mesaj gönderme" etkinliğinde nasıl çalışabileceği gösterilmektedir. Alıcı alanı, Konu satırı ve Gönder düğmesi yalnızca ihtiyaç duydukları yüksekliği kaplar. Mesaj alanı, etkinliğin yüksekliğinin geri kalanını kaplar.
LinearLayout içinde üç metin alanı ve bir düğme.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/to" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/subject" /> <EditText android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="top" android:hint="@string/message" /> <Button android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="end" android:text="@string/send" /> </LinearLayout>
LinearLayout öğesinin her bir çocuk ekranında kullanılabilen özellikler hakkında ayrıntılı bilgi için LinearLayout.LayoutParams sayfasına bakın.