由NavigationView控制的ViewPager

时间:2019-06-24 00:20:50

标签: android android-viewpager android-navigationview

我的应用程序中有一个导航抽屉,我想选择其中一个选项将在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 :(得分:0)

添加到代码末尾:

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) {

            }
        });

答案 1 :(得分:0)

最终,我解决了我的问题-我找不到一个简单的解决方案,因此只使用了高度为0dp的TabLayout,所以它会存在,但不会被用户看到,这是制作ViewPager的教程可以在Internet上找到由tablayout控制并将其连接到导航抽屉的功能,因此只需隐藏TabLayout就可以了(: