Android片段在选项卡中相互重叠打开
所以我有一个Android片段在选项卡中相互重叠打开,android,android-fragments,tabs,android-viewpager,Android,Android Fragments,Tabs,Android Viewpager,所以我有一个FragmentPagerAdapter,它有4个不同的选项卡。每一个都会打开一个片段。getItem方法建立如下: @Override public Fragment getItem(int i) { switch (i) { case 0:{ return new FragmentOne(); } case 1:{ ret
FragmentPagerAdapter
,它有4个不同的选项卡。每一个都会打开一个片段。getItem
方法建立如下:
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:{
return new FragmentOne();
}
case 1:{
return new FragmentTwo();
}
case 2:{
return new FragmentThree();
}
case 3:{
return new FragmentFour();
}
default:
return null;
}
}
public Fragment getItem(int i) {
Fragment fragment = null;
switch (i) {
case 0:
fragment = new FragmentOne();
break;
case 1
fragment = new FragmentTwo();
break;
case 2:
fragment = new FragmentThree();
break;
case 3:
fragment = new FragmentFour();
break;
return fragment;
}
但是,尽管没有抛出错误,但它不会正确显示。第一个选项卡有四个片段
,其余三个选项卡为空
是什么导致了这个问题
提前谢谢你的帮助 您可以添加忘记的break steatement或使用此代码执行工作:
@Override
public Fragment getItem(int i) {
Fragment fragment = null;
if (i == 0) {
fragment = new FragmentOne();
} else if (i == 1) {
fragment = new FragmentTwo();
} else if (i == 2) {
fragment = new FragmentThree();
} else if (i == 3) {
fragment = new FragmentFour();
}
return fragment;
}
或者通过添加中断语句,如下所示:
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:{
return new FragmentOne();
}
case 1:{
return new FragmentTwo();
}
case 2:{
return new FragmentThree();
}
case 3:{
return new FragmentFour();
}
default:
return null;
}
}
public Fragment getItem(int i) {
Fragment fragment = null;
switch (i) {
case 0:
fragment = new FragmentOne();
break;
case 1
fragment = new FragmentTwo();
break;
case 2:
fragment = new FragmentThree();
break;
case 3:
fragment = new FragmentFour();
break;
return fragment;
}
祝你好运..那只是条件句代替了这个例子…不,我的朋友。。它将替换switch语句,并仅在索引适当时创建片段,而不是在每个“case”中创建片段的OP代码!!。。。只是因为他忘记了break语句。。。否则,他的代码是好的,开关应该是最好的,谢谢你的回答!不幸的是,这并没有解决我的问题。这似乎产生了同样的结果。在片段中,会有什么吗?为每个案例添加break语句。。我相信这会解决你的问题