Полезно ли начинать фрагмент с адаптера? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть действие с fragment A. Fragment A содержит список в recyclerview, для которого требуется adapter. Когда щелкает элемент из списка, я хочу открыть другой фрагмент, скажем, B, показывая дополнительные сведения об элементе. Я могу открыть фрагмент B тремя способами:

  1. Из самого адаптера в форме ресивера, где у меня будет позиция предмета и т. Д.

  2. Из фрагмента A с использованием обратного вызова от адаптера, поскольку у адаптера есть вся необходимая информация, например позиция, объект и т. Д.

  3. Из упражнения снова с помощью обратного вызова. Если я сделаю это из действия, мне нужно будет добавить интерфейс обратного вызова от адаптера к фрагменту A и, наконец, к действию. Выглядит слишком много.

Я хочу знать, как лучше открыть фрагмент B.

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Эй, не рекомендуется запускать фрагмент из адаптера.потому что будет очень сложно найти контейнер фрагмента.поэтому, пожалуйста, всегда пытайтесь запустить фрагмент из основного действия, которое будет родительским для всего фрагмента. Я надеюсь, что это поможет вам.

0 голосов
/ 02 апреля 2019

Вариант 2 - это всегда хороший подход-> 2. Из фрагмента, A использует обратный вызов от адаптера, поскольку адаптер имеет всю необходимую информацию, такую ​​как положение, объект и т. Д.

"Согласно шаблону MVC адаптер являетсявсегда используется для связывания представления со списками. Таким образом, адаптер всегда должен быть независимым от фрагмента, поэтому принцип единой ответственности всегда будет обрабатываться. Поэтому не должно быть никакой зависимости от адаптера к фрагменту, а от фрагмента к адаптеру. При вызове фрагмента или действияиз адаптера это создаст циклическую зависимость друг с другом, поэтому память не будет очищена, пока вы не закончите приложения. Вы можете вызвать любой метод обратного вызова фрагмента из адаптера, который вызовет нужный фрагмент. "

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