Можно ли установить различные действия для плавающей кнопки действия в разных фрагментах?
Я работаю или приложение, где у меня есть 4 фрагмента в viewpager и плавающая кнопка действия (fab). Когда я нажимаю на fab, появляются 3 вложенные вкладки. Каждый из них запускает различные действия, в которых пользователь может искать данные из разных фрагментов. Можно ли настроить fab так, что если я нажму на него, пока я нахожусь в первом фрагменте, он откроет действие для поиска внутри этого фрагмента, onClick inside second - поиск второго и т. д. Проблема в том, что теперь нажимаю на sub fab, пока я нахожусь в каком-то фрагменте Я тоже могу искать данные из другого фрагмента, и это немного странно. Я понимаю, что вопрос немного странный, если что-то непонятно, я объясню дальше
2 ответа:
Вы можете сделать кнопку FAB общедоступной и реализовать прослушиватель onClick в каждом фрагменте. Вы должны переопределить setUserVisibleHint и поместить свой код onResume, чтобы getActivity() не возвращал null. Кнопка Fab будет иметь различные действия в разных фрагментах.
Вот пример, внутри каждого фрагмента, когда вы хотите нажать прослушиватель:
@Override public void setUserVisibleHint(boolean visible) { super.setUserVisibleHint(visible); if (visible && isResumed()) { onResume(); } } @Override public void onResume() { super.onResume(); if (!getUserVisibleHint()) { return; } MainActivity mainActivity = (MainActivity)getActivity(); mainActivity.fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Do what you want } }); }