В настоящее время я не думаю, что есть простой способ использовать список посылок с безопасными аргументами, но я нашел некоторый «взлом», чтобы сделать эту работу.Например, у меня есть объект «Пользователь», и он может быть отправлен, я объявляю новый объект «Пользователи», который расширяет ArrayList ().
@Parcelize
data class User(var name: String, val age: Int): Parcelable
@Parcelize
class Users: ArrayList<User>(), Parcelable
Теперь я могу установить «Пользователи» в качестве аргумента в навигации
<argument
android:name="users"
app:argType="com.navigation.test.Users"/>
И передача массива списка посылок между получателями:
val user=User("Alex", 36)
val users= Users()
users.add(user)
val action=MainFragmentDirections.actionMainFragmentToSecondFragment(users)
NavHostFragment.findNavController(this@MainFragment).navigate(action)
И для извлечения их по другому получателю:
val users=SecondFragmentArgs.fromBundle(arguments).users
val user=users[0]
txtViewName.text=user.name
txtViewAge.text="${user.age}"
Обновление:
Поддержка списка объектов, поступающих в alpha8: https://issuetracker.google.com/issues/111487504