Doğrusal düzen oluşturma

Oluşturma yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da düzenlerle çalışma hakkında bilgi edinin.

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.

Üç dikey dilim halinde bölünmüş bir düzeni gösteren resim
Şekil 1. Yatay yönlü üç çocuk içeren bir LinearLayout.

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.

Dikey yönlü DoğrusalLayout'ta üç EditText öğesi ve bir Düğme gösteren resim
Şekil 2. Üç metin alanı ve dikey yönlü LinearLayout içinde 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>

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.