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.

nav_graph.xml

Bu ekranda "New Destination" butonuna basarak,

Create new destination penceresi

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.

Yeni fragment oluşturma penceresi

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

blankFragment isimli yeni destination'umuz

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.

startDestination'a sahip blankFragment

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

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

Was this helpful?