@kirawa

Как правильно работать с floatingActionButton в viewPager? Что я делаю не так?

Добрый день! У меня есть viewPager c FragmentStatePagerAdapter, на уровне viewPager создал в xml FloatingActionButton. У viewPager итемы с однотипным контентом и итемы - это просто фрагмент который заполняется в зависимости от позиции viewPager.
private class ViewPagerAdapter extends FragmentStatePagerAdapter {
  @Override
        public Fragment getItem(int position) {
            Bundle bundle = new Bundle();
            bundle.putInt(POSITION, position);
            ItemViewPagerFragment fragment =  new ItemViewPagerFragment();
            fragment.setArguments(bundle);
            return fragment;
        }
}


В ItemViewPagerFragment я нахожу FloatingActionButton и вешаю на нее клик.

FloatingActionButton floatingActionButton = getActivity().findViewById(R.id.fab);
        floatingActionButton.setOnClickListener(this);


По нажатии на floatingActionButton должен запускаться другой фрагмент, в зависимости от позиции viewPager, например вот:
private void startNewVisitDoc() {
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.addToBackStack(null)
                .replace(R.id.contentMain, new ClientViewPagerContainer())
                .commit();
    }

При инициализации если я перемещусь на вторую позицию viewPager, а потом снова вернусь на первую то getFragmentManager() == null, и childFragmentManager == null
Забавно что в каждом итеме реализован ListView на котором повешен onListItemClick и по этому событию тоже вызывается startNewVisitDoc(); который отрабатывает корректно.
Собственно приложение падает. Помогите пожалуйста. Что я сделал нетак?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы