Gezinme işlemlerini kullanarak parçalar arasında bağlantılar oluşturabilirsiniz. Gezinme işlemi, kullanıcıyı bir hedeften diğerine götürür. Bu kılavuz Eylemlerin ne olduğunu açıklar ve bunları nasıl oluşturup kullanabileceğinizi gösterir.
Genel Bakış
Her işlem benzersiz bir kimliğe sahiptir ve aşağıdakiler gibi ek özellikler içerebilir: seçeceğiz. Hedef, uygulamanın kullanıcıyı götüreceği ekranı tanımlar kullanıcılar harekete geçmelerini sağlar. İşlem, verileri taşımak için bağımsız değişkenler de kullanabilir bir hedeften diğerine geçer.
- Güvenli Bağımsız Değişkenler: İşlemleri kullanarak kaynak kimliklerini Güvenli Bağımsız değişkenler tarafından oluşturulan işlemler, derleme zamanı konusunda ek güvenlik sağlar.
- Animasyonlar: Hedefler arasındaki geçişlere de animasyon uygulayabilirsiniz. Daha fazla bilgi için Hedefler arasındaki geçişleri animasyonla gösterme başlıklı makaleyi inceleyin.
Örnekler
<action>
etiketlerini kullanarak gezinme grafiği XML dosyanızda işlemler tanımlayın. İlgili içeriği oluşturmak için kullanılan
aşağıdaki snippet,
FragmentA
- FragmentB
.
<fragment
android:id="@+id/fragmentA"
android:name="com.example.FragmentA">
<action
android:id="@+id/action_fragmentA_to_fragmentB"
app:destination="@id/fragmentB" />
</fragment>
İşlem kullanarak gezinme
Bu işlemi kullanarak gezinmek için NavController.navigate()
numaralı telefonu arayıp pas verin
Bu işlem id
:
navController.navigate(R.id.action_fragmentA_to_fragmentB)
Genel işlemler
Herhangi bir yerden bir hedefe gitmek için genel işlemleri kullanabilirsiniz.
Uygulamanızda birden fazla yoldan erişilebilen herhangi bir hedef için şuraya giden karşılık gelen bir genel işlem tanımlayın seçeceğiz.
Aşağıdaki örneği inceleyin. results_winner
ve game_over
hem de hedef URL'nin ev konumuna gitmesi gerekir. İlgili içeriği oluşturmak için kullanılan
action_pop_out_of_game
işlemi bunu yapma olanağı sağlar;
action_pop_out_of_game
, belirli bir parçanın dışındaki genel bir işlemdir.
Bu, içinde herhangi bir yerde ona referans verebileceğiniz ve çağrıda bulunabileceğiniz
in_game_nav_graph
<?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"
android:id="@+id/in_game_nav_graph"
app:startDestination="@id/in_game">
<!-- Action back to destination which launched into this in_game_nav_graph -->
<action android:id="@+id/action_pop_out_of_game"
app:popUpTo="@id/in_game_nav_graph"
app:popUpToInclusive="true" />
<fragment
android:id="@+id/in_game"
android:name="com.example.android.gamemodule.InGame"
android:label="Game">
<action
android:id="@+id/action_in_game_to_resultsWinner"
app:destination="@id/results_winner" />
<action
android:id="@+id/action_in_game_to_gameOver"
app:destination="@id/game_over" />
</fragment>
<fragment
android:id="@+id/results_winner"
android:name="com.example.android.gamemodule.ResultsWinner" />
<fragment
android:id="@+id/game_over"
android:name="com.example.android.gamemodule.GameOver"
android:label="fragment_game_over"
tools:layout="@layout/fragment_game_over" />
</navigation>