RelativeLayout
, alt görüntülemeleri göreceli konumlarda gösteren bir görüntüleme grubudur. Her görünümün konumu, kardeş öğelere göre (başka bir görünümün soluna veya altına göre) ya da üst RelativeLayout
alanına göre konumlarda (alta, sola veya ortaya hizalı) belirtilebilir.
Not: Daha iyi performans ve araç desteği için bunun yerine düzeninizi ConstraintLayout ile oluşturmanız gerekir.
RelativeLayout
, iç içe geçmiş görünüm gruplarını ortadan kaldırabileceği ve düzen hiyerarşinizi düz tutarak performansı yükseltebileceği için kullanıcı arayüzü tasarlamak için çok güçlü bir yardımcı programdır. İç içe yerleştirilmiş birkaç LinearLayout
grubu kullanıyorsanız bunları tek bir RelativeLayout
ile değiştirebilirsiniz.
Görünümleri Konumlandırma
RelativeLayout
, alt görünümlerin ana görünüme veya birbirleriyle (kimlikle belirtilir) göre konumlarını belirtmesine olanak tanır. İki öğeyi sağ kenarlıkla hizalayabilir veya bir öğeyi diğerinin altında, ekranda ortalanmış, sola ortalanmış şekilde yapabilirsiniz. Varsayılan olarak, tüm alt görünümler düzenin sol üst tarafına çizilmiştir. Bu yüzden, her görünümün konumunu RelativeLayout.LayoutParams
içinde bulunan çeşitli düzen özelliklerini kullanarak tanımlamanız gerekir.
Bir RelativeLayout
içinde görüntülenebilen birçok düzen özelliğinden bazıları şunlardır:
android:layout_alignParentTop
"true"
ise bu görünümün üst kenarının, üst kenarın üst kenarıyla eşleşmesini sağlar.android:layout_centerVertical
"true"
ise bu alt öğe, üst etiketinin içinde dikey olarak ortalanır.android:layout_below
- Bu görünümün üst kenarını, bir kaynak kimliğiyle belirtilen görünümün altına yerleştirir.
android:layout_toRightOf
- Bu görünümün sol kenarını, bir kaynak kimliğiyle belirtilen görünümün sağına yerleştirir.
Bunlar yalnızca birkaç örnektir. Tüm düzen özellikleri RelativeLayout.LayoutParams
adresinde belgelenmiştir.
Her düzen özelliğinin değeri, üst RelativeLayout
öğesine göre bir düzen konumunu etkinleştirmek için bir boole veya görünümün yerleştirilmesi gereken düzendeki başka bir görünüme başvuruda bulunan bir kimliktir.
XML düzeninizde, düzendeki diğer görünümlere karşı bağımlılıklar herhangi bir sırada bildirilebilir. Örneğin, "view2" hiyerarşide tanımlanan son görünüm olsa bile "view1" değerinin "view2"nin altında konumlandırılacağını bildirebilirsiniz. Aşağıdaki örnekte böyle bir senaryo gösterilmektedir.
Örnek
Her görünümün göreli konumunu kontrol eden özniteliklerin her biri vurgulanır.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" > <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/reminder" /> <Spinner android:id="@+id/dates" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/times" /> <Spinner android:id="@id/times" android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignParentRight="true" /> <Button android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/times" android:layout_alignParentRight="true" android:text="@string/done" /> </RelativeLayout>
RelativeLayout
öğesinin her alt görünümünde kullanılabilen tüm düzen özellikleri hakkında ayrıntılar için RelativeLayout.LayoutParams
bölümüne bakın.