我在viewPager f1,f2,f3上有3个片段的活动,显示在3个不同的标签中。我想要实现的目标如下,
f3 visible -> user clicks on a button -> f2 has to be made visible
f2 visible -> user clicks on a button -> f1 has to be made visible
我怎样才能做到这一点?
答案 0 :(得分:2)
ViewPager
方法setCurrentItem(int)
可以成功。
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.SampleButton: {
if (mViewPager.getCurrentItem() == 2) { // At f3
mViewPager.setCurrentItem(1); // go to f2
} else if (mViewPager.getCurrentItem() == 1) { // At f2
mViewPager.setCurrentItem(0); // go to f1
}
}
break;
}
}
如果你想真正检查片段对用户是真的visible
,你需要覆盖每个片段上的setUserVisibleHint
。为此,请阅读此链接; https://stackoverflow.com/a/9779971