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.

İ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.

Last updated