💻
Jetpack Navigation
  • 01. Başlarken..
  • 02. Navigation Çalışma Yapısı ve Bileşenleri
  • 03. Navigation Destekli Uygulama Oluşturmak
  • 04. Projenize Navigation Graph Eklemek
  • 05. Projenize NavHostFragment Eklemek
  • 06. Bir Destination'ın Anatomisi
  • 07. Destination'ların Bağlanması
  • 08. NavController Kullanarak Bir Hedef Noktasına Gitmek
  • 09. Nested Navigation Graphs
  • 10. Global Actions
  • 11. Talk is cheap show me the code!
    • Örnek-1: NavController Kullanarak Bir Hedef Noktasına Gitmek
    • Örnek-2: Destination'lar Arasında Veri Aktarma
    • Örnek-3: Navigation Komponenti ile Options Menu Kullanımı
    • Örnek-4: Navigation Komponenti ile ActionBar ve DrawerLayout Kullanımı
    • Örnek-5: Navigation Komponenti ile BottomNavigationView Kullanımı
    • Örnek-6: Özel Geçiş Animasyonu Hazırlama
    • Örnek-7: Navigation Komponenti ile Deep Links Kullanımı
  • Kaynaklar
  • Hakkında
Powered by GitBook
On this page

Was this helpful?

06. Bir Destination'ın Anatomisi

02 numaralı dersimizde Destinations ve actions ifadelerini sıklıkla duyacağımızı söylemiştik. Şimdi bir hedef alanını belirten destination'ların anatomisine bir göz atalım.

Previous05. Projenize NavHostFragment EklemekNext07. Destination'ların Bağlanması

Last updated 5 years ago

Was this helpful?

İncelememize başlamak için şimdiye kadar Navigation Graph ve NavHostFragment eklediğimiz projemize artık bir Destination eklemenin vakti geldi.

Bunun için nav_graph.xml dosyamızın dizayn bölümünü aşağıdaki gibi açalım.

Bu ekranda "New Destination" butonuna basarak,

Açılan yukarıdaki pencerede "Create new destination" seçeneğini işaretleyelim. Karşımıza aşağıdaki gibi yeni bir fragment oluşturma penceresi açılacaktır. Gerekli isimlendirmeleri verip, Finish butonuna basalım.

Bu adımı tamamladığımızda artık aşağıdaki gibi yeni bir destination'ımız hazır duruma gelecektir.

nav_graph.xml’in dizayn bölümündeki Attribute’ler alanında 4 attribute (öznitelik) bulunur.

Type alanı destination’a bir fragment, activity veya custom bir class uygulanıp uygulanmadığını gösterir. Şu anda bir Fragment eklediğimiz için Type, Fragment olarak görünmekte.

Label alanı, hedefin XML layout dosyasının adını içerir.

ID alanı, hedefin kimliğini belirtir.

Class alanı, hedefle ilişkilendirilmiş sınıfın adını gösterir. Bizim örneğimize göre bu class adı aşağıdaki gibi olacaktır.

com.etiya.jpnavigation1.BlankFragment

nav_graph.xml'in metin bölümü ise aşağıdaki gibi oluşacaktır.

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/blankFragment">

    <fragment
        android:id="@+id/blankFragment"
        android:name="com.etiya.jpnavigation1.BlankFragment"
        android:label="fragment_blank"
        tools:layout="@layout/fragment_blank" />
</navigation>

Burada app:startDestination="@id/blankFragment" şeklinde belirtilen startDestination alanı uygulama açıldığında kullanıcıları ilk karşılayan ve uygulamadan çıkmadan önce görecekleri son ekranı belirtir. XML dizayn sayfasında aşağıdaki gibi ev simgesi ile gösterilir.

Yer tutucu (Placeholder) hedefleri

Aşağıdaki görselde de gördüğü gibi yeni bir destination oluşturma ekranındaki placeholder seçeneği dikkatinizi çekmiş olmalı.

Placeholder'ları, uygulanmayan hedefleri temsil etmek için kullanabilirsiniz. Yer tutucu (placeholder) bir hedefin görsel bir temsili olarak hizmet eder. Navigation Editor’de, yer tutucuları diğer herhangi bir hedef gibi kullanabilirsiniz.

nav_graph.xml
Create new destination penceresi
Yeni fragment oluşturma penceresi
blankFragment isimli yeni destination'umuz
startDestination'a sahip blankFragment
Placeholder