Android Dersleri

Android Dersleri 4 : Layout Türleri

Android uygulamalarımızda ekleyeceğimiz kontrollerin belirli bir düzende olmasını istiyorsak layout kullanmamız gerekir. Örneğin buton ve textview kontrollerinin alt alta olmasını, sağa sola kaymadan belirli bir düzende olmasını istiyorsak buna uygun olan layoutları kullanmamız gerekir. Bu derste androidde kullanılan Layout Türlerine değineceğim.

Şimdi temel layout türlerini inceleyelim.

1) LinearLayout

Bu layout türünde, eklenecek olan nesneler doğrusal olarak eklenir. Eğer vertical linear layout kullanırsak alt alta, horizontal linear layout kullanırsak yan yana eklenir.  

Bunun için soldaki paletlerden layouts‘a tıkladıktan sonra LinearLayout‘u seçin ve ekrana bırakın. Bıraktıktan sonra boyutlarını büyütebilirsiniz. LinearLayout’u ekledikten sonra içerisine farklı nesneler sürükleyin. Eğer vertical olanı eklediyseniz alt alta eklenecektir. Horizontal olanı eklerseniz yan yana eklenecektir. Aşağıda iki farklı layout için nasıl eklendiğini görebilirsiniz.

Sol tarafta dikey olarak sağda ise yatay olarak yerleşim yaptık. Bu yerleşimleri xml dosyasından da değiştirebiliriz. Sayfamızın xml tarafında geçtiğimizde aşağıdaki gibi orientation kısmından vertical ya da horizontal olarak değiştirebiliriz.

Burada şunu da söyleyelim. Eklediğimiz buton, textview gibi nesneler bu layout etiketinin içerisinde olmalıdır. Bakın daha layout etiketini kapatmadan içerisine nesneleri ekledik. Örnek bir layout kodunu verelim. Bakın aşağıdaki kodda, eklediğimiz tüm araçlar, layout etiketi içindedir.

2) FrameLayout

Bu layout tipinde nesneler üst üste biner. Genelde aynı boyutlardaki butonların üst üste gelip, birinin kaybolduğunda diğerinin gözükmesi için kullanılır. Bunun için, bir önceki örnekte xml kısmında LinearLayout yazısını silip FrameLayout yazabiliriz ya da araç panelinden tekrar bir FrameLayout ekleyebiliriz. Tabiki yeniden eklemek daha iyi olacaktır.

Bu layout türünde dediğimiz gibi nesneler üst üste biner ve sol üste dayalı şekilde sıralanırlar. xml dosyasındaki kod kısmını ise aşağıda görebilirsiniz.

 

3) RelativeLayout

Bu layout tipini kullanırsak araçlarımızı istediğimiz yere sürükleriz. Varsayılan olarak android uygulamalarında bu layout gelir. Araçlarımızı, sayfamız üzerinde sürüklediğimiz zaman cetvel şeklinde koordinatları görebilirsiniz. Bir hiza olmadan istediğimiz gibi araçları yerleştirebiliriz.

Şimdi bu layout tipini kullandığımız bir sayfa gösterelim. Kod kısmında ise sadece etiket ismi değişecektir.

Görüldüğü gibi istediğimiz gibi nesneleri konumlandırabiliyoruz.

 

4) TableLayout

Bu layout türünde ise araçlarımız bir tablo şeklinde tutulur. Diğerlerinden farklı olarak bu layout’u kullandığımızda tablomuza TableRow adında satır eklememiz gerekiyor. Bunu yine layout penceresinden yapıyoruz. Şimdi ekrandaki nesneleri temizleyelim ve ekrana bir TableLayout ekleyelim. Ya da xml kısmından etiket ismini TableLayout da yapabiliriz.

TableLayout kullanırken her satır için bir TableRow eklememiz gerekiyor. Burada 3 tane TableRow ekledik ve her TableRow içerisine de aynı türden araçlar koyduk.

Biraz önce layout içerisinde layout kullanabileceğimizi söylemiştik. Şimdi TableLayout’ta boş kalan alt kısma bir RelativeLayout ekleyelim ve xml kısmında android:layout_height=”fill_parent” kısmını wrap_content değil de fill_parent yapın ve kalan ekranın tamamına yayılmasını sağlayın. Sonra bu layout içerisinde farklı araçlar ekleyin. Son görünüm aşağıdaki gibi olacaktır.

Not : Hangi layout’u kullanırsak kullanalım, sayfamıza araçlardan önce bir layout eklememiz gerekiyor. Eğer araçlarımızı layout’umuzun dışına eklersek hizalamaya alınmayacaktır. Ekleyeceğimiz tüm nesneler, xml kısmında bu layout etiketinin içerisinde olmalıdır. Ayrıca layout içerisinde başka layoutlar kullanabiliriz ya da aynı ekranda birbirinden bağımsız farklı layoutlar kullanabiliriz.

Yukarıdaki notta anlattığımız, araçların layout etiketi içerisinde olmasına bir örnek daha verelim. Sayfa başında LinearLayout kullanırken bir örnek vermiştik fakat tabloları ve satırları kullanarak da bir örnek verelim. Hem ekran görüntüsünü hem de xml kodunu vererek konumuzu bitirelim.

Temel layout’lar bu şekildedir. Layout’a tıkladıktan sonra sağdaki Properties kısmından farklı ayarlamaları yapabilirsiniz.

Mehmet Kirazlı

İstanbul Eyüp'te ikamet ediyorum. Giresun Alucra'lıyım. Bilgisayar Mühendisliği bölümünden 2013 yılında mezun oldum. "Yeni Başlayanlar için Java 8" kitabının yazarıyım. Şu anda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

Yorumları Göster

  • Daha evvel kaç tane siteye baktım ama sizin anlatım tarzınız ve gidiş yolunuz daha hoşuma gidiyor. İnşallah sizin bütün derslerinizi bitirme niyetindeyim. Böyle yazılarınız için teşekkürler.

  • Mehmet Bey merhabalar,

    Malum android cihazlar farklı çözünürlükte oluyor. Burda uygulamaları web'teki responsive mantığıyla mı yapıyorlar? Ayrıca landscape ve portrait modları nasıl algılanıyor ?

    Teşekkürler.

    • Merhaba. Landscape ve portrait'i siz belirliyorsunuz. Sayfa yatay ya da dikey olarak açılıyor.
      Farklı ekranlarda aynı ya da farklı görünebilir. Mesela bir resim eklersiniz, bu büyük ekranlarda da küçük görünmeye devam eder. Her ekran için farklı resim eklemeniz gerek.

  • hocam ben bir frame layoutta boyutları 1024x1024 ile 700x700 arası değişen 40 tane resim yüklemek istiyorum ama 15 ten sonra uygulama çalışmıyor.ne yapabilirim yardımcı olursanız sevinirim

    • Çalışmıyor derken hata mesajı veriyordur. Hata mesajını hangi satırda verdiğini debug yaparak bulabilir misiniz ? Bunun sebebi farklı farklı olabilir

Son Gönderiler

Android Firebase Event (not set) Hatası Çözümü

Merhaba. Firebase Events'e istatistik attığınızda not set şeklinde bir değer görüyorsanız olası çözümünü göstereceğim. (daha&helliip;) Daha Fazla Oku

% gün önce

Namaz Vakitleri Uygulaması Yayında

Merhaba. Android cihazlar için hazırladığım Namaz Vakitleri uygulaması ile 200'e yakın ülkede tüm namaz-ezan vakitlerini… Daha Fazla Oku

% gün önce

Kaza Namazı ve Oruç Takip Uygulaması

Selamlar. İnsanlar için faydalı olması amacıyla geliştirdiğim Kaza Namazı ve Oruç Takip Uygulamasını sizlere tanıtmak… Daha Fazla Oku

% gün önce

Android Volley Kullanımı ve JSON Parse İşlemleri

Volley, Android uygulamalarımızda kullandığımız AsyncTask'ın alternatifi olarak ortaya çıkarılan, Google I/O 2013 sunumunda duyurulan bir… Daha Fazla Oku

% gün önce

Android ButterKnife Kütüphanesi Kullanımı

Merhaba. Bu yazımda Android platformunda kullanıma sunulan, bazı kod bloklarını basitleştiren ve okunabilirliği arttıran ButterKnife… Daha Fazla Oku

% gün önce

Admob TikTok Reklamları Engelleme

Merhaba. Bu yazımda artık baş belası olmuş TikTok reklamlarını, Android uygulamalarımızdaki Admob reklamlarından nasıl kaldıracağımızı… Daha Fazla Oku

% gün önce