如何将TabLayout与底部导航和ViewPager一起使用? [英] How to use tablayout with bottom navigation and viewpager?
本文介绍了如何将TabLayout与底部导航和ViewPager一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用bottom navigation bar
创建了一个活动.
当我想切换到另一个片段时,我需要tablayout
.
并且tablayout
可以控制viewpager
.我可以将viewpager
放入指定的片段吗?
I created an activity with a bottom navigation bar
.
I want tablayout
when I want to switch to another fragment.
And tablayout
can control viewpager
. Can I put viewpager
to the specified fragment?
我想这样:
这是当前结果.我要将viewpager
放在红色框中.
This is the current result. I want to put viewpager
in the red box.
推荐答案
尝试使用此方法将BottomNavigationView
和TabLayout
与ViewPager
Try this to sync your BottomNavigationView
and TabLayout
with ViewPager
myBottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_one) {
myViewPager.setCurrentItem(0);
}else if (id == R.id.action_two) {
myViewPager.setCurrentItem(1);
}else if (id == R.id.action_three) {
myViewPager.setCurrentItem(2);
}else if (id == R.id.action_four) {
myViewPager.setCurrentItem(3);
}
return false;
}
});
myViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == 0) {
myBottomNavigationView.setSelectedItemId(R.id.action_one);
}else if (position == 1) {
myBottomNavigationView.setSelectedItemId(R.id.action_two);
}else if (position == 2) {
myBottomNavigationView.setSelectedItemId(R.id.action_three);
}else if (position == 3) {
myBottomNavigationView.setSelectedItemId(R.id.action_four);
}
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
这篇关于如何将TabLayout与底部导航和ViewPager一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文