02. Navigation Çalışma Yapısı ve Bileşenleri

Bu bölümde Navigation komponent'ini oluşturan yapıtaşları neler? Hangi avantajları sağlıyor? gibi soruların cevaplarını bulacağız.

Navigation bileşeninin 3 ana bölümü vardır.

1. Navigation Graph (Navigasyon Grafiği) 2. NavHostFragment (NavHost, kullanıcı uygulamanızda gezinirken hedeflerin içeri dışarı kaydırıldığı boş bir kapsayıcıdır ve varsayılan olarak bir NavHostFragment’i içerir.) 3. NavController (NavHost’taki hedef içeriğin değiştirilmesini düzenler.)

Navigation Graph (Navigasyon Grafiği), yeni bir kaynak (resources) türüdür. Bilgi içeren ve merkezileştiren bir XML dosyasıdır. Daha da önemlisi artık bu bilgiler aşağıdaki gibi görselleştirilebilir durumda.

Navigation Editor adı verilen bu editör üzerinde aşağıda göründüğü gibi hem içerik alanlarını hem de birbiri ile olan bağlantıları görüntülenir.

1. Uygulamanızdaki farklı içerik alanlarını belirtir. (Destinations) 2. Kullanıcıların alabileceği yolları belirten mantıksal bağlantılardır. (Actions)

Bu iki ifadeyi (Destinations ve Actions) bundan sonra da sıklıkla duyacaksınız.

Projenize bir graph ekledikten sonra, graph'ı Android Studio Navigation Editor ile açabilir, görsel olarak düzenleyebilir veya XML'i doğrudan düzenleyebilirsiniz.

  1. Destinations (Hedefler) paneli: HOST ve Navigation Editor'de bulunan bulunan tüm hedefleri listeler.

  2. Graph Editörü: Navigasyon grafiğinizin görsel bir temsilini içerir. Hem XML içerinde metin görünümünü hem de grafik görünümü görebilirsiniz.

  3. Attributes: Ekranın sağ kısmında navigation graph'ta' seçili olan öğenin niteliklerini gösterir.

Editor'ün Metin sekmesinde de XML kısmına göz atabilirsiniz.

<?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">

</navigation>

<navigation> elementi, bir navigation graph'ın kök (root) öğesidir. Graph'ınıza destination ve action ekledikçe, burada karşılık gelen <destination> ve <action> öğelerini alt öğeler olarak görebilirsiniz. Ayrıca Nested graph'larınız varsa, bunlar da alt <navigation> öğeleri olarak görünür.

- Fragment işlemlerini işleme (handling) - Varsayılan olarak yukarı ve geri işlemlerini doğru şekilde işleme. - Derin bağlantıların (deep linking) uygulanması ve ele alınması. (handling) - Minimum ek çalışma ile birlikte “bottom navigation”, “navigation drawers” gibi Navigation UI pattern’leri ile kolay entegrasyon ve çalışma. - Hedefler arasında gezinirken ve veriler arasında geçiş yaparken tür güvenliği sağlayan (Safe Args) bir gradle eklentisi içerir. - ViewModel desteğine sahiptir. UI ile Navigation Graph hedefleri arasında paylaşmak için bir ViewModel ‘i bir Navigation graph’a dahil edebilirsiniz.

Navigation, Android Studio 3.3 ve üzeri ile kullanılabilir durumdadır.

Last updated