Gezinme işlemlerini ve Parçalarını kullanma

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.

Ö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>

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>