我的层次结构是这样的。一个viewpager包含3个页面(所有片段),称为
cdist
,NewFragment
和InvoledFragment
,在viewpager之外,我设置了一个Radiobutton,用于在MeFragment
和另一个名为Newfragment
的片段之间切换,出于某些原因,我使用{ {1}}管理交换机,这里是![输入图像说明这里是我的代码
RadioButton检查侦听器
Hotfragment
和FragmentPagerAdapter
hide(),show()
我的问题是private class CheckedChangeListener implements RadioGroup.OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.button_new:
mFragmentAtPos0 = newfrag;
fragTransaction = fragmentManager.beginTransaction();
if(!newfrag.isAdded()){
fragTransaction.hide(hotfrag).add(R.id.mainviewpager,newfrag).commit();
}
else{
fragTransaction.hide(hotfrag).show(newfrag).commit();
}
mFragmentAtPos0 = newfrag;
Toast.makeText(MainActivity.this, "NEW", Toast.LENGTH_SHORT).show();
break;
case R.id.button_hot:
fragTransaction = fragmentManager.beginTransaction();
if(!hotfrag.isAdded()){
fragTransaction.hide(newfrag).add(R.id.mainviewpager,hotfrag).commit();
}
else{
fragTransaction.hide(newfrag).show(hotfrag).commit();
}
mFragmentAtPos0 = hotfrag;
Toast.makeText(MainActivity.this, "HOT", Toast.LENGTH_SHORT).show();
break;
}
}
}
没有显示,但它有效(我将日志代码放在hotfrag中进行检查),并且viewpager工作正常,我在这里停留了好几个小时但仍然没办法解决它。
我发现有一个非常相似的答案,就在这里 Replace Fragment inside a ViewPager,但我使用了hide,show,而不是替换。
任何人都可以提供帮助吗?非常感谢!