我的应用程序中有一个导航抽屉,我想选择其中一个选项将在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?
}
答案 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就可以了(: