Kom godt i gang med Android Navigation Component

Navigation refererer til de interaktioner, der giver brugerne mulighed for at navigere på tværs af, ind i og tilbage fra de forskellige indholdsstykker i din app. Android Jetpack’s Navigation-komponent hjælper dig med at implementere navigation, fra enkle knap-klik til mere komplekse mønstre, såsom app-bjælker og navigationsskuffen.

Kilde: developer.android.com

Navigationskomponenten giver en fleksibel løsning til at håndtere fragmenterne og vedligeholde backstack.

Funktioner

  • Let at implementere.
  • Håndtering op og tilbage handlinger korrekt som normal.
  • Håndtering af fragmenttransaktioner.
  • Protected Args – et Gradle-plugin, der giver typesikkerhed, når du navigerer og videregiver information mellem destinationer.
  • ViewModel assist – du kan omfatte en ViewModel til en navigationsgraf for at dele UI-relaterede information mellem grafens destinationer.

Implementering

Føj til construct.gradle (projekt)

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.zero"

anvende pluginet til app-niveau construct.gradle

apply plugin: "androidx.navigation.safeargs.kotlin"

Tilføj afhængigheder

dependencies 

Navigation uden argumenter

Opret 2 fragmenter MainFragment og BasicFragment.

Vi navigerer til BasicFragment fra MainFragment

Opret nav_basic.xml

<?xml model="1.zero" encoding="utf-Eight"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:instruments="http://schemas.android.com/instruments"
    android:id="@+id/nav_basic"
    app:startDestination="@id/mainFragment">

    <fragment
        android:id="@+id/mainFragment"
        instruments:structure="@structure/fragment_main"
        android:title="com.techpaliyal.androidnavigationcomponent.MainFragment">
        <motion android:id="@+id/startBasicFragment"
            app:vacation spot="@id/basicFragment">

        </motion>

    </fragment>

    <fragment
        android:id="@+id/basicFragment"
        instruments:structure="@structure/fragment_basic"
        android:title="com.techpaliyal.androidnavigationcomponent.BasicFragment"/>

</navigation>

app: startDestination = ”@ id / mainFragment” dette vil være indgangsstedet.

dealing with dette bruges til navigation fra mainFragment til basicFragment

Føj navigationsfragment til MainActivity

<fragment
    android:id="@+id/nav_host_fragment"
    android:title="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintLeft_toLeftOf="dad or mum"
    app:layout_constraintRight_toRightOf="dad or mum"
    app:layout_constraintTop_toTopOf="dad or mum"
    app:layout_constraintBottom_toBottomOf="dad or mum"
    app:defaultNavHost="true"
    app:navGraph="@navigation/nav_basic" />

Naviger fra mainFragment til basicFragment ved brug af dealing with id

inde MainFragment.kt på klik på knappen

findNavController().navigate(R.id.basicFragment)

findNavController () vil henvise til den controller, hvor fragmentet er fastgjort.

Navigation med argumenter

Definer argumenter i nav_basic.xml

<fragment
    android:id="@+id/argumentedFragment"
    instruments:structure="@structure/fragment_argumented"
    android:title="com.techpaliyal.androidnavigationcomponent.ArgumentedFragment">
    <argument
        android:title="first_name"
        app:argType="string" />
</fragment>

Ship argument fra BasicFragment til ArgumentedFragment

val motion = MainFragmentDirections.startArgumentedFragment("Yogesh")
            findNavController().navigate(motion)

Få argumenter ind ArgumentedFragment

val params : ArgumentedFragmentArgs by navArgs()

Du kan tjekke den fulde kode på Github.

Kommentar til forslag og problemer.

Leave a Comment

Your email address will not be published. Required fields are marked *