为多个选项卡返回相同的片段
Returning the same fragment for multiple tabs
我得到了 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 的实例,将其保存在 field/variable 中,然后将其用作函数中的 return 数据。
需要注意的一件事是,您不应该为片段使用带参数的构造函数。将 Bundle 与参数一起使用。带有参数的构造函数可能会导致 Fragments 出现问题。
看看这个 post 关于那个:Best practice for instantiating a new Android Fragment
我得到了 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 的实例,将其保存在 field/variable 中,然后将其用作函数中的 return 数据。
需要注意的一件事是,您不应该为片段使用带参数的构造函数。将 Bundle 与参数一起使用。带有参数的构造函数可能会导致 Fragments 出现问题。
看看这个 post 关于那个:Best practice for instantiating a new Android Fragment