Google I/O 18 — NAVIGATION

Ömer Ateş
3 min readOct 30, 2018

--

Merhaba arkadaşlar bu yazımızda geçenlerde Google I/O 18 ile duyurulan geliştiricilerin hoşuna gidebilecek olan navigation yeniliğini anlatacağım.

Biz kullanıcılar herhangi bir uygulama da gezinmeye başladığımızda sayfalar arasında sürekli butonlara tıklanarak yada yönlendirilmeyle geçişler yaparak işlemlerimizi gerçekleştiririz.İşte ! tam burada navigation yeniliği geliştiricilerin yardımına koşuyor.Geliştirici kullanıcının tüm olası etkinliklerini tek bir ekranda düzenleyebilme imkanı yakalamaktadır.

Tüm bu işlemleri aşağıdaki görselde örnek proje üzerinden gösterilmektedir.

Navigation tasarım ekranı

Yukarı da ki tasarım /düzenleme ekranına gelmek için projenizde res/navigation/mobile_navigation.xml. yolunu takip etmelisiniz.

Ardından karşınızda design ve text tabları gelmektedir.Biz design kısmını geçmeliyiz.

Yukarıda ki resimde bağlantıları ,geçişleri daha iyi görebilirsiniz.

özellikler

Eğer ekranımızda bulunan herhangi bir fragmentimizin özelliklerini görmek istiyorsak üzerine tıklamamız yeterlidir.Sağ tarafta gördüğünüz gibi bir pencere açılacaktır.

Gelin bir de xml kısmında nasıl oluşturuluyor bu yapılar ? Bakalım 😊

<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"
app:startDestination="@+id/launcher_home">

<!-- ...tags for fragments and activities here -->

</navigation>

Yeni bir proje açtığımızda bizi sadece yukarıdaki gibi bi xml tanımlanacaktır.

Birkaç maddeyle yukarıdaki xml kodunu açıklayayım :

  • <navigation> bütün gerçekleşen eylemler bu tagler arasında oluşturulmaktadır. <activity> veya <fragment> gibi componentler içermektedir.
  • app:startDestination kullanıcı uygulamayı ilk açtığında ilk gösterilecek ekranı burada belirtilmektedir.

<navigation> etiketleri arasına gelin birkaç kod fragment ve activity ekleyip inceleyelim :

<fragment
android:id="@+id/flow_step_one"
android:name="com.example.android.codelabs.navigation.FlowStepOneFragment"
tools:layout="@layout/flow_step_one_fragment">

<argument
.../>

<action
android:id="@+id/next_action"
app:destination="@+id/flow_step_second"/>
</fragment>
  • android:id gerekli önemli elementten biridir.Eklenilen componentin çağrılmasında yada kullanılmasında kimlik görevi görmektedir.
  • android:name activity yada fragmentin ayağa kaldırılması için gerekli java yada kt sayfasının bağlandığı yerdir.
  • tools:layout ayağa kaldıracağımız fragment yada activitylerin hangi layout dosyasını kullanacağını burada belirtiyoruz.

Tasarım /Düzenleyici ekranımıza yeni bir hedef (Fragment/Activity) ekleme

Gidilmek istenen hedefi projenizde olsa bile tasarım ekranımıza eklemezsek herhangi bir bağlama işlemi vb. yapamayız diğer bileşenler arasında.

Tekrardan res/navigation/mobile_navigation.xml

yolumuza gelip design pencerisini açıyoruz :

Hedef ekkleme

Yukarıda görüldüğü gibi Add Destination ögesine tıklayarak eklemek istediğimiz hedef bileşene tıklıyoruz.

Eğer design kısmından değilde xml tarafında ekleyecek ise kodumuz şöyle olmalıdır :

<fragment
android:id="@+id/settings_fragment"
android:name="com.example.android.codelabs.navigation.SettingsFragment"
android:label="fragment_settings"
tools:layout="@layout/fragment_settings"/>

Her iki durumda da aşağıdaki gibi bir görüntü elde edeceğiz :

Yeni fragment

--

--