ViewPager контролируется NavigationView - PullRequest
0 голосов
/ 24 июня 2019

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

Я искал его в Интернете, но решения не было найдено, только проблемы и учебные пособия по использованию ViewPager с TabLayout и / или с навигационным ящиком ', но в этих случаях OnPageChangeListener получает "новый TabLayout.TabLayoutOnPageChangeListener (tabLayout ) "как OnPageChangeListener

public void setUpPageAdapter(){
pageAdapter = new PageAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(pageAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); --> what should replace the TabLayoutOnPageChangeListener?
}

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

В конце концов я решил свою проблему - я не смог найти простое решение, поэтому просто использовал TabLayout с высотой 0dp, поэтому он будет существовать, но не будет виден пользователю, учебник по созданию ViewPager контролируется tablayout и его подключение к навигационному ящику можно найти по всему интернету, так что просто скрытие TabLayout прекрасно работает (:

0 голосов
/ 24 июня 2019

добавить в конец кода:

tabLayout.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
...