Плавающая кнопка и архитектура Activity/Fragment

Я пытаюсь найти лучшую архитектуру, реализующую плавающую кнопку. Это мой сценарий:

У меня есть базовая активность, в которой есть координатор, макет панели приложений, панель инструментов, плавающая кнопка и макет фрейма, чтобы использовать его с фрагментами. Первый фрагмент содержит пейджер представления и макет вкладки, и каждая вкладка является другим фрагментом (recyclerview). Проблема в том, что когда я щелкаю элемент, я хочу открыть другой фрагмент, потому что я не хочу иметь много действий, реализующих один и тот же материал. Проблема в том, что я не хочу иметь эту плавающую кнопку на новом фрагменте, который я открываю.

Какой подход лучше всего?

  1. Имея два действия, одно с плавающей кнопкой, а другое без
  2. Скрыть и показать плавающую кнопку в зависимости от того, в каком фрагменте я нахожусь.
  3. Другой подход будет фантастическим.

Идея в том, чтобы изучить архитектуру, любое предложение будет для меня отличным.

Спасибо




Ответы (1)


Поскольку ваш Floating Action Button (FAB) не реализован в одном из фрагментов, это был бы один из способов скрыть его, когда появится второй. Самый простой способ - вызвать .setVisibility(View.GONE) в FAB при запуске второго фрагмента и снова сделать его видимым, когда вы вернетесь к первому фрагменту.

Если вы добавите FAB к первому фрагменту, то он должен исчезнуть со всем фрагментом при переключении на второй. Если вашей активности необходимо обрабатывать событие onClick FAB, реализуйте для него интерфейс во фрагменте.

Наличие двух действий только для сокрытия FAB было бы слишком много. Если вы добавите FAB к фрагменту, вам не нужно беспокоиться о том, что он будет виден при отображении второго фрагмента, и потеря производительности при вызове дополнительной функции не должна иметь значения, потому что вы не собираетесь делать это 100 раз. в минуту.

person Weschne    schedule 23.02.2016
comment
Круто, проблема в том, что если я добавлю плавающую кнопку на каждый фрагмент, у меня возникнут проблемы с макетом координатора, потому что макет фрейма имеет app:layout_behavior=@string/appbar_scrolling_view_behavior . Проблема в том, что отображается только половина кнопки, после прокрутки вы видите всю кнопку. - person ; 23.02.2016
comment
(guides.codepath.com/android/floating-action-buttons) Вкл. с этой стороны у них есть несколько простых примеров реализации плавающей кнопки, и один из них находится в режиме прокрутки. Я не знаю, как вы реализовали свой FAB, но попробуйте ‹code›app:layout_anchorGravity=bottom|right|end ‹/code›, который должен поместить кнопку в правый нижний угол. Полную реализацию xml вы можете увидеть в примерах. Надеюсь, что это работает, пока я сам не использовал scolling view с FAB. - person Weschne; 23.02.2016