#6 – Android Layouts: Tab Layout


Merhaba bir önceki yazımda Grid View layoutu anlatmıştım. Bu yazımda Tab Layoutu anlatacağım.

Tab Layout

Tab layout adından da anlaşılacağı üzere tabların kullanıldığı şablondur. Örneğimizle daha iyi anlayacaksınız. Örneğimiz 3 tane tab içerecek, tabların kendilerine ait isimleri ve simgeleri olacak. Ve de tabların kendi içerikleri de olacak.

kodu_indir

Örneğimizin emulatör çıktısı şöyle olacak:

tablayout

Gerekli Adımlar:

1. Yeni bir proje oluşturup (1. derste anlatmıştım.) adına TabLayout diyoruz.

2. activity_main.xml dosyasına aşağıdaki kodu girin.

3. Aşağıda verdiğim fotoğrafları /res/drawable-hdpi dosyasına kaydedin, isimleri sırasıyla:home, music, photos olmalı.

home   music    photos

4. res altındaki layout klasörüne sağ tıklayıp 3 tane yeni android xml dosyası açın, isimleri şöyle olmalı: home.xml, music.xml, photo.xml (sıra önemli değil)

Sırasıyla bu xml dosyalarına aşağıdaki kodları girin.

home.xml

 

music.xml

photo.xml

 

5. drawable-hdpi klasörü altına üç tane android xml dosyası açın. Sırasıyla şu isimleri verin: hometab, musictab, phototab. Ve aşağıdaki kodları girin:

hometab.xml

 

musictab.xml

 

phototab.xml

 

6. Madem 3 farklı tabımız olacak o zaman 3 tane farklı .java dosyamız olmalı, çünkü biz bu üç tabın içinde farklı şeyler olsun istiyoruz. src klasörü altındaki paket dosyanıza sağ tıklayarak üç tane yeni sınıf oluşturun isimleri şöyle olsun: HomeActivity.java, MusicActivity.java, PhotoActivity.java

Sırasıyla aşağıdaki kodları girin:

HomeActivity.java

MusicActivity.java

PhotoActivity.java

7. Şimdi de MainActivity.java dosyasında tabları ve tabların isimlerini oluşturup tabhost a ekleyeceğiz. Aşağıdaki kodu MainActivity.java dosyasına girin.

8. Şimdi de 6. adımda ek olarak oluşturduğumuz aktiviteleri AndroidManifest.xml dosyasına activite olarak giriyoruz. Şu kodları manifeste ekleyin:

 

9. Herşey hazır, şimdi projemize sağ tıklayıp Run as -> Android Application diyoruz. Sonuç aşağıda görülüyor.

Tab Layout Emülatör Çıktısı

tablayout

Android Evreni’nin bir yazısının daha sonuna geldik.Bütün Android Evreni ziyaretçilerine yararlı olmasını umarım.
Bir dahaki yazımda ListView anlatılacaktır.

Mustafa Demir

Elektronik, linux, android, ios, matlab, latex, python, C, ve C++ meraklısıyım. Profesyonel Android Uygulama Geliştiricisi olma yolunda ilerliyorum. Ubuntu 15.04 kullanıcısıyım. Merakımın peşinden koşmayı severim.

Şunlar da ilginizi çekebilir

9 yorum

  • erkan
    18 Mart 2014 at 02:28

    ellerine sağlık dostum

    • MUSTAFA DEMİR
      18 Mart 2014 at 07:05

      teşekkürler yorum yapıp değerlendirmenizi ilettiğiniz için.

  • sunal
    26 Mart 2014 at 18:47

    Eline sağlık Kardeşim yazılar çok güzel senden bir ricada bulunmak istiyorum kusruma bakma anlamak için bunu söylüyorum çok kafama takılan nokta oluyor ondan örnek “Intent photosIntent” kodlar arasında böyle bir kod bölümü var daha önceki derslerde de mainActivity.javada genellikle oluyor bu tarz farklı kodaların açıklamsını yapa bilirmisin ezbere gitmek istemiyorum o yüz den bu yorumu yaptım teşekkürler.

    • MUSTAFA DEMİR
      11 Mayıs 2014 at 06:34

      Öneriniz için teşekkürler, normalde bütün kodların açıklamasını yaparım bunu kaçırmışım herhalde.

  • Rabia
    29 Mart 2014 at 16:39

    Merhaba,
    Yazılarınızın bir çoğunu daha yeni okuma fırsatı buldum. Hepsi ayrı ayrı çok yararlı oldu. Android ile son senemde ilgilenmeye başladım bitirme projemden dolayı. O yüzden birçok konuda eksiğim var. Bir sorum olcaktı yardımcı olabilirseniz çok sevinirim. Şimdi bu tablayout uygulamasını android te yaptım. Aynı ebat ve içeriklerde bir uygulamayı da Pc tarafı için java kullanarak yaptım. Şimdi asıl sorunum benim her iki uygulamayı da eş zamanlı olarak wifi üzerinden birbirine bağlamam gerek. Şunu yapmam gerek, pc tarafındaki uygulamada örneğin bir taba tıkladığımda, android teki uygulamada aynı şekilde tıklanmış olsun. Yani Pc den android i kontrol edebileyim ama sadece bu uygulama için. Daha temel konularda bile eksiğim varken bunu nasıl yapacağımı bir türlü çözemedim. Bu konuda yardımcı olabilirseniz çok sevinirim. Android konusunda daha tecrübeli biri olarak en azından buna benzer gördüğünüz. bir uygulama var mı ? Bu istediğimin teknik olarak bir karşılığı var mı ? nasıl arayabilirim? Bu konularda yardımcı olabilirseniz gerçekten baya bi makbule geçer :)
    Şimdiden teşekkürler..

  • Muhammet
    10 Mayıs 2014 at 23:10

    Merhabalar hocam ben bunu denedim ama tablette resimler gözükmüyor telefonda gözüyor bunu her ekran için ayarlamak ne yapabiliriz

    • MUSTAFA DEMİR
      11 Mayıs 2014 at 06:37

      merhaba,

      res klasörü altında drawable isminde bir klasör açın ve tablara ait resimleri bu klasör içine de kopyalayın. Bu şekilde problemin çözülmesi gerekiyor. drawable, drawable-hdpi, drawable-xhdp, drawable-xxhdpi, drawable-xxxhdpi klasörlerini biraz araştırırsanız daha iyi anlayacağınıza eminim.

      İyi Çalışmalar.

  • Emre
    25 Haziran 2015 at 20:12

    Hocam çok sagolun çok işime yaradı fakat ben actionbarıda gostermesini istiyorum oncreateoptionsmenu yazdım olmadı ?

  • mehmet
    31 Aralık 2015 at 13:00

    herkes teşekkür etmiş de bi ben mi salağım
    getTabHost() metodu nerde hocam böyle bir metod yok

MUSTAFA DEMİR için bir cevap yazın Cevabı iptal et