LinearLayout
, tüm alt öğeleri tek bir yönde (dikey veya yatay) hizalayan bir görüntüleme grubudur. Düzen yönünü android:orientation
özelliğiyle belirtebilirsiniz.
Bir LinearLayout
öğesinin tüm alt öğeleri art arda üst üste yığılır. Bu nedenle dikey bir listede, ne kadar geniş olduklarına bakılmaksızın satır başına yalnızca bir alt öğe bulunur. Yatay listenin yalnızca bir satır y��ksekliği vardır ve bu liste, en uzun alt öğenin yüksekliğine ek olarak dolguyu içerir. LinearLayout
, alt çizgiler arasındaki kenar boşluklarına ve her bir alt öğenin yer çekimine (sağa, ortaya veya sola hizalaması) uyar.
Düzen ağırlığı
LinearLayout
, android:layout_weight
özelliğiyle bağımsız alt öğelere ağırlık atamayı da destekler. Bu özellik, bir görünüme ekranda ne kadar alan kapladığına göre bir "önem" değeri atar. Daha büyük bir ağırlık değeri, üst görünümde kalan alanı doldurmak için genişletilmesini sağlar. Alt görünümlerde bir ağırlık değeri belirtilebilir ve görünüm grubunda kalan alanlar, bildirdikleri ağırlıklara göre orantılı olarak alt öğelere atanır. Varsayılan ağırlık sıfırdır.
Eşit dağılım
Her çocuğun ekranda aynı miktarda alan kullandığı doğrusal bir düzen oluşturmak için her görünümün android:layout_height
değerini dikey düzen için "0dp"
, yatay düzende 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ğılım
Alt öğelerin ekranda farklı miktarlarda alan kullandığı doğrusal düzenler de oluşturabilirsiniz. Aşağıdaki örnekleri inceleyin:
- İkisinin ağırlık değeri 1, üçüncüsünün de varsayılan ağırlık değeri 0 olan üç metin alanınızın olduğunu varsayalım. 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ı dolduracak şekilde eşit olarak genişler.
- Bunun yerine, ikisinin ağırlık değerinin 1, üçüncüsünün ağırlığının 2 olduğu üç metin alanınız varsa üç alanın içeriğinden sonra kalan alan şu şekilde hesaplanır: ağırlık değeri 2 olan alanın yarısı ve ağırlık değeri 1 olan alanların yarısı, ağırlık değeri 1 olan alanlar arasında eşit olarak bölünür.
Aşağıdaki şekil ve kod snippet'i, düzen ağırlıklarının "mesaj gönderme" etkinliğinde nasıl çalışacağını göstermektedir. Alıcı alanı, Konu satırı ve Gönder düğmesi yalnızca ihtiyaç duydukları yüksekliği kaplar. Etkinlik yüksekliğinin geri kalanını mesaj alanı kaplar.
<?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>
Bir LinearLayout
öğesinin her alt görünümünde kullanılabilen özellikler hakkında ayrıntılı bilgi için LinearLayout.LayoutParams
sayfasını inceleyin.