“Android Safe Args Dependency” относится к библиотеке в разработке Android, которая обеспечивает типобезопасный способ передачи аргументов между пунктами назначения (фрагментами, действиями) с помощью компонента навигации. Вот несколько методов с примерами кода по использованию зависимости Android Safe Args:
- Добавить зависимость Safe Args.
Чтобы использовать Safe Args, вам необходимо добавить плагин Safe Args Gradle и зависимость в файл build.gradle вашего проекта.
В файле build.gradle уровня проекта:
buildscript {
repositories {
// ...
}
dependencies {
// ...
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:<version>"
}
}
В файле build.gradle на уровне модуля:
apply plugin: "androidx.navigation.safeargs.kotlin"
dependencies {
// ...
implementation "androidx.navigation:navigation-fragment-ktx:<version>"
implementation "androidx.navigation:navigation-ui-ktx:<version>"
}
Замените соответствующим номером версии.
- Определите аргументы в графе навигации.
В XML-файле графа навигации (например,nav_graph.xml) определите аргументы для пунктов назначения. Например, предположим, что у вас есть два фрагмента:FragmentAиFragmentB.
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:startDestination="@id/fragmentA">
<fragment
android:id="@+id/fragmentA"
android:name="com.example.FragmentA">
<action
android:id="@+id/action_fragmentA_to_fragmentB"
app:destination="@id/fragmentB">
<argument
android:name="argExample"
app:argType="string" />
</action>
</fragment>
<fragment
android:id="@+id/fragmentB"
android:name="com.example.FragmentB">
<argument
android:name="argExample"
app:argType="string" />
</fragment>
</navigation>
- Навигация с помощью Safe Args:
В коде, в котором вы хотите перейти отFragmentAкFragmentB, вы можете передавать аргументы с помощью Safe Args.
>
val action = FragmentADirections.actionFragmentAToFragmentB(argExample = "Hello, Fragment B!")
findNavController().navigate(action)
В FragmentBвы также можете получить доступ к значению аргумента с помощью Safe Args.
val args: FragmentBArgs by navArgs()
val argExample = args.argExample
Вот и все! Вы успешно использовали зависимость Android Safe Args для передачи аргументов между фрагментами с помощью компонента навигации.