Как реализовать .OnDrawerItemClickListener по фрагментам? Помогите пожалуйста реализовать.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id, IDrawerItem drawerItem) {
switch (drawerItem.getIdentifier()) {
case 1:
break;
}
}
}).build();
Я хочу чтобы в кейсе 1 по нажатию на 1-вы айтем вылазил фрагмент вот этот:TabLayout tabLayout = (TabLayout)findViewById(R.id.tabLayout);
TabFragmentAdapterPlants adapterPlants = new TabFragmentAdapterPlants(getSupportFragmentManager());
viewPager.setAdapter(adapterPlants);
tabLayout.setupWithViewPager(viewPager);
Я пробывал в кейс 1 вставлять все вот эти строчки но мне кажеться это быдет не правильно можно это вынести в onCreate а в кейс просто вставить фрагмент.replace().commit();
Помогите пожалуйста реализовать это.

21 Авг 2019 в 06:32
227 +1
0
Ответы
1

Да, правильно, вам необходимо создать фрагмент и затем заменить его при нажатии на первый элемент в вашем Drawer.

Вам нужно создать фрагмент, который содержит ваш код для инициализации TabLayout, ViewPager и адаптера. Затем, в вашем обработчике onItemClick для первого элемента Drawer, вы можете заменить текущий фрагмент на ваш созданный фрагмент.

Примерно так:

Создайте свой фрагмент с кодом для инициализации TabLayout, ViewPager и адаптера:public class TabFragment extends Fragment {
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tab_layout, container, false);
tabLayout = (TabLayout) view.findViewById(R.id.tabLayout);
viewPager = (ViewPager) view.findViewById(R.id.viewPager);
TabFragmentAdapterPlants adapterPlants = new TabFragmentAdapterPlants(getChildFragmentManager());
viewPager.setAdapter(adapterPlants);
tabLayout.setupWithViewPager(viewPager);
return view;
}
}И в вашем обработчике onItemClick для первого элемента Drawer:.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) {
switch (drawerItem.getIdentifier()) {
case 1:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
TabFragment tabFragment = new TabFragment();
transaction.replace(R.id.container, tabFragment);
transaction.commit();
break;
}
}
}).build();

Где R.id.container - это id контейнера, в который вы будете заменять фрагмент. Сначала убедитесь, что у вас есть контейнер с таким id в вашем макете активности.

20 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир