Doğrusal düzen oluşturma

"Oluştur" yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da düzenlerle nasıl çalışacağınızı öğrenin.

LinearLayout, tüm alt öğeleri tek bir yönde (dikey veya yatay olarak) hizalayan bir görünüm grubudur. Düzen yönünü android:orientation özelliğiyle belirtebilirsiniz.

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

LinearLayout öğesinin tüm alt öğeleri üst üste yığılır. Yani dikey listede, ne kadar geniş olduklarına bakılmaksızın satır başına yalnızca bir alt öğe bulunur. Yatay bir liste yalnızca bir satır yüksekliğindedir ve en uzun alt öğenin yüksekliğiyle birlikte dolgudur. LinearLayout, alt öğeler arasındaki kenar boşluklarına ve her bir alt öğenin yerçekimi (sağa, orta veya sola hizalanmasına) uyar.

Düzen ağırlığı

LinearLayout, android:layout_weight özelliğiyle her bir alt öğeye ağırlık atamayı da destekler. Bu özellik, bir görünüme ekranda ne kadar yer kaplayacağına bağlı olarak bir "önem" değeri atar. Daha büyük bir ağırlık değeri, üst görünümde kalan alanı dolduracak şekilde genişletilmesini sağlar. Alt görünümler bir ağırlık değeri belirtebilir ve görünüm grubunda kalan alan, bildirilen ağırlıklarına göre alt çocuklara orantılı olarak atanır. Varsayılan ağırlık sıfırdır.

Eşit dağılım

Her alt yayıncının ekranda aynı miktarda alan kullandığı bir doğrusal düzen oluşturmak için her görünümün android:layout_height değerini dikey düzende "0dp" olarak, yatay düzende 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 değerini "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 göz önünde bulundurun:

  • Üç metin alanınızın olduğunu varsayalım: Ağırlık değeri 1 olan iki metin ve varsayılan ağırlık değeri 0 olan üçüncü alan. 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 da içeriği ölçüldükten sonra kalan alanı doldurmak için eşit şekilde genişler.
  • Bunun yerine, ikisinin ağırlık değeri 1 ve üçüncüsünün ağırlığı 2 olan üç metin alanınız varsa bu üç alanın da içeriğinden sonra kalan boşluk şu şekilde ayrılır: Ağırlık değeri 2 olan alanın yarısı ve ağırlık değeri 1 olan alanların yarısı arasında eşit olarak bölünür.

Aşağıdaki şekilde ve kod snippet'inde, düzen ağırlıklarının bir "mesaj gönderme" etkinliğinde nasıl çalışabileceği gösterilmektedir. Alıcı alanı, Konu satırı ve Gönder düğmesinin her biri yalnızca gereken yüksekliği doldurur. Mesaj alanı, etkinliğin geri kalanını kaplar.

Dikey yönlü Doğrusal Layout'ta üç EditText'i ve bir düğmeyi gösteren resim
Şekil 2. Dikey LinearLayout düzeninde üç 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 alt görünümünde kullanılabilen özellikler hakkında ayrıntılı bilgi için LinearLayout.LayoutParams sayfasını inceleyin.