Связь между действиями и фрагментами при использовании компонента архитектуры навигации - PullRequest
1 голос
/ 18 февраля 2020

Я хочу сообщить хозяину Activity, когда что-то происходит во фрагменте. Традиционно у меня был бы интерфейс с обратным вызовом, который может вызывать фрагмент, но теперь мы c используем компонент архитектуры навигации.

Есть ли способ передать ссылку на действие хоста во фрагменты или как бы я иначе разрешил ситуацию "Связь между действиями и фрагментами"?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 18 февраля 2020

Для этих целей можно использовать класс держателя данных LiveData .

Здесь - статья, объясняющая как Fragment <--> Fragment связь, так и Activity <--> Fragment связь.

0 голосов
/ 18 февраля 2020

Вы можете использовать Shared ViewModel (https://developer.android.com/topic/libraries/architecture/viewmodel#sharing)

Он был бы жив, пока активность и все дочерние фрагменты могут получить к ней доступ.

A LiveData в Shared ViewModel, например, можно прослушивать во всех фрагментах. Если один из этих фрагментов изменит данные, все остальные получат это изменение.

0 голосов
/ 18 февраля 2020

у вас может быть общая ViewModel между вашей деятельностью и всеми вашими фрагментами. и использовать liveData в этой viewModel. поэтому, когда что-то происходит во фрагментах, вы меняете liveData и наблюдаете liveData в упражнении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...