Это вопрос дизайна, а не технический.
Общий случай. Я хочу, чтобы в пользовательском интерфейсе произошел обход изменений во всей области.
Конкретный случай. У меня есть два фрагмента, размещенных в одном и том же действии. Когда пользователь нажимает кнопку в одном из этих фрагментов, я хочу, чтобы он был заменен другим.
Я не хочу, однако мои фрагменты касаются моей активности. Возможно, я захочу изменить поведение позже (возможно, на большем экране, покажите оба фрагмента вместо замены первого), и я не хочу, чтобы мой код фрагмента имел такую логику.
То, что я сделал, это реализовать класс Listener
в моих фрагментах, который передает события обратно в Activity
. Таким образом, если я хочу использовать другой класс Activity
с различным поведением дисплея, я могу просто изменить прослушиватель и оставить код Fragment
нетронутым.
Это хороший способ? Есть ли стандартная хорошая практика или лучший дизайн?