为多个选项卡返回相同的片段
问题描述:
我得到了3个选项卡,但是我得到了一个片段。是否有可能为3个选项卡使用一个片段?为多个选项卡返回相同的片段
目前我有这在我的FragmentPagerAdapter:
@Override
public Fragment getItem(int position) {
if (position == 0) {
return new FragmentTwo(region,"1");
} else if(position == 1){
return new FragmentTwo(region,"2");
}
return new FragmentTwo(region,"3");
}
但只显示在一个选项卡的所有数据..
我已经编辑我的代码,但仍然得到一个标签的所有数据。 目前:
@Override
public Fragment getItem(int position) {
return FragmentTwo.newInstance(region, position);
}
& &
static FragmentTwo newInstance(String region,int position) {
FragmentTwo frag=new FragmentTwo();
Bundle args=new Bundle();
args.putInt("KEY_POSITION", position);
args.putString("REGION", region);
if(position == 0){
args.putString("TYPE","A");
}
else if(position == 0){
args.putString("TYPE","B");
}
else{
args.putString("TYPE","C");
}
frag.setArguments(args);
return(frag);
}
要创建我的FragmentPagerAdapter我打电话getSupportFragmentManager();
答
是的,您可以创建FragmentTwo的实例,将其保存在字段/变量中,并将其用作函数中的返回数据。
有一点需要注意的是,你不应该使用具有Fragments参数的构造函数。使用包含参数。带参数的构造函数可能会导致Fragments问题。
看看这篇文章就指出:Best practice for instantiating a new Android Fragment
欢迎您使用相同的片段类所有选项卡。这是我的样本之一,这样做︰https://github.com/commonsguy/cw-omnibus/tree/master/ViewPager/Fragments – CommonsWare 2015-01-20 21:49:59
我认为问题是如何使用相同的片段类实例,而不是片段类。 – teamnorge 2015-07-25 12:06:28