【发布时间】:2015-08-30 11:20:28
【问题描述】:
我正在尝试使用RadioGroup 来处理我的ViewPager 屏幕切换。但是,ViewPager 不会滚动到指定的位置。我很困惑,我是不是做错事的人。下面是我的代码
寻呼机监听器
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
switch (position) {
case 0:
switcherGroup.check(R.id.view1);
break;
case 1:
switcherGroup.check(R.id.view2);
break;
case 2:
switcherGroup.check(R.id.view3);
break;
case 3:
switcherGroup.check(R.id.view4);
break;
case 4:
switcherGroup.check(R.id.view5);
break;
default:
break;
}
}
@Override
public void onPageSelected(int position) {
//
}
@Override
public void onPageScrollStateChanged(int state) {
//
}
});
以上工作正常。但是,当我添加 RadioGroup CheckListener 时,这就是问题所在。
RagioGroup 我添加了if 检查时pager.setCurrentItem(value, true) 不断制作屏幕只是随机切换屏幕。就像它根本不遵循指示一样。
private final RadioGroup.OnCheckedChangeListener onCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.loanView:
if (pager.getCurrentItem() != 0) {
pager.setCurrentItem(0, true);
}
break;
case R.id.loanProfileView:
if (pager.getCurrentItem() != 1) {
pager.setCurrentItem(1, true);
}
break;
case R.id.loanEmployeeView:
if (pager.getCurrentItem() != 2) {
pager.setCurrentItem(2, true);
}
break;
case R.id.loanHouseView:
if (pager.getCurrentItem() != 3) {
pager.setCurrentItem(3, true);
}
break;
case R.id.loanIncomeView:
if (pager.getCurrentItem() != 4) {
pager.setCurrentItem(4, true);
}
break;
default:
break;
}
}
};
我的寻呼机适配器
公共类 PagersAdapter 扩展 FragmentPagerAdapter {
public PagersAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new Frag1();
switch (position) {
case 0:
fragment = new Frag1();
break;
case 1:
fragment = new Frag2();
break;
case 2:
fragment = new Frag3();
break;
case 3:
fragment = new Frag4();
break;
case 4:
fragment = new Frag5();
}
return fragment;
}
@Override
public int getCount() {
return 5;
}
任何帮助将不胜感激。谢谢
【问题讨论】:
-
如果你得到随机页面,我猜问题出在你的 PagerAdapter 代码中。
-
@Raanan 我编辑了我的代码并添加了适配器。可以看看吗?
-
解决了,如果没有 SO,我们该怎么办。 :)
标签: android android-fragments android-viewpager android-radiogroup