Вы также можете передать данные в компонент навигации с помощью safeargs, как показано ниже для справки. На уровне приложения build.gradle
apply plugin: 'androidx.navigation.safeargs'
На верхнем уровне build.gradle
dependencies {
classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0'
}
На графике навигации
<fragment
android:id="@+id/employeeDetailsFragment"
android:name="com.example.navigationjetpacksample.fragments.EmployeeDetailsFragment"
android:label="EmployeeDetailsFragment"
tools:layout="@layout/frag_employee_details">
<argument
android:name="employee"
app:argType="com.example.navigationjetpacksample.models.Employee"
android:defaultValue="@null"
app:nullable="true"/>
</fragment>
отправка аргументов из одного фрагмента в другой
val action = EmployeesListFragmentDirections.actionEmployeesListFragmentToEmployeeDetailsFragment(getEmployee)
view.findNavController().navigate(action)
и в вашем приемнике фрагмент
val args : EmployeeDetailsFragmentArgs by navArgs()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding : FragEmployeeDetailsBinding = DataBindingUtil.inflate(inflater,
R.layout.frag_employee_details,container,false)
binding.employee = args.employee
return binding.root
}