Ders 9: Android RelativeLayout

27 Ocak 2012 Cuma
LinearLayout dışındaki bir başka container RelativeLayout. LinearLayoutta geçerli olan orientation kodu RelativeLayout’ta geçerli değildir. Burada, componentlerin yerleştirme işlemi birbirlerinin konumuna göre yapılır. Örneğin; bir button bir tane de edittext olduğunu varsayarsak, button edittextin neresine gelecek? Üstüne mi, sağına mı, soluna mı? Buna göre yerleşimi yapıyoruz. Kısacası bu layout türünde dizayn işlemini özel attribute’lar ile gerçekleştiriyoruz. Bunlardan bazıları şunlardır:

·         Layout_alignParentTop
·         Layout_alignParentLeft
·         Layout_alignLeft
·         Layout_alignRight
·         Layout_below
·         Layout_centerHorizontal

RelativeLayout’u bir örnekle açıklayıp, daha iyi anlaşılır hale getirelim. Bir RelativeLayout,bir TextView,bir EditText ve bir Button kullanalım:

·         Main.xml içerisine geliyoruz ve RelativeLayout containerımızı oluşturuyoruz:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

Burada anlaşılmayan bir şey olmasa gerek. Aynı LinearLayout’taki gibi containerı oluşturuyoruz. Tek farkı <RelativeLayout> tagını kullanıyor olmamız.

·         TextView’imizi oluşturuyoruz:

<TextView
       android:id="@+id/yorumlar"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Yorumlar"
       android:layout_alignParentTop="true"
      android:layout_alignParentLeft="true"/>

Burada ID, genişlik, yükseklik ve içerik atamaları, daha önce LinearLayout örneklerinde yaptığımız gibi. Farklı olan kısma bakarsak, RelativeLayout’a ait olan layout_alignParentTop ve layout_alignParentLeft attributelerini kullandık. Bunların değerlerini “true” yaparak bu componentin ekrana göre(containera göre) sol üst köşede olmasını sağladık. RelativeLayoutta tasarım işleminde, componentlerin birbirlerine göre olan konumları önemli hale geliyor. Şu an sadece bir componentimiz vardı. Bu yüzden onu containera göre yerleştirdik. Ayrıca unutulmaması gereken bir nokta da, burada container, componentin parentı durumunda. Bu yüzden attribute isimlerinde de parent lafı geçiyor.

·         EditText’imizi oluşturuyoruz:
<EditText
        android:id="@+id/icerikgirisi"
       android:layout_width="fill_parent"
        android:layout_height="170px"
        android:textSize="18dp"
       android:layout_below="@+id/yorumlar”/>

Bunda da her zamanki gibi ID, boyut vs. ataması yaptık. Son olarak yerini belirledik. Yarattığımız TextView’in ID’si “yorumlar”dı.EditText’imiz TextView’in altında olsun istediğimiz için, “layout_below=”@+id/yorumlar” yapısını kullandık.

·         Butonumuzu oluşturuyoruz:

<Button
       android:id="@+id/kaydet"
       android:text="Kaydet"
      android:layout_width="125px"
       android:layout_height="wrap_content"
       android:layout_below="@+id/icerikgirisi"
       android:layout_alignRight="@+id/icerikgirisi"    />

Diğerlerinde olduğu gibi bunda da ID, içerik ve boyut ataması yaptık. Daha sonra yerini ayarladık. Yeri EditText’imin altında ve sağ tarafta olsun istedik. Bunun için de “layout_below=@+id/icerikgirisi” ve “layout_alignRight=@+id/icerikgirisi” yapılarını kullandık.

·         En sonunda da containerımızı kapatmayı unutmuyoruz:

</RelativeLayout>


Uygulamanın çıktısı ise şu şekilde oluyor:


1 yorum:

  1. Homeless dedi ki...:

    Peki linearlayout ile yaptığımız her şeyi relativelayout ile de yapabiliyor muyuz ya da tam tersi relativelayout ile yaptığımız her şeyi linearlayout ile yapabiliyor muyuz?

Yorum Gönder