Android 片段事务添加/分离和操作栏选项卡
我正在使用操作栏选项卡显示不同类别下的一些图像。例如:有三个选项卡:-cat1、cat2、cat3。所有三个选项卡都在网格视图中显示图像。选项卡侦听器类如下所示:-Android 片段事务添加/分离和操作栏选项卡,android,android-actionbar,Android,Android Actionbar,我正在使用操作栏选项卡显示不同类别下的一些图像。例如:有三个选项卡:-cat1、cat2、cat3。所有三个选项卡都在网格视图中显示图像。选项卡侦听器类如下所示:- @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { switch(id){ case 1:{ this.tagName="cat1"; Cat1 genf
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
switch(id){
case 1:{
this.tagName="cat1";
Cat1 genf=(Cat1)= getFragmentManager().findFragmentByTag(this.tagName);
if(genf==null){
genf=Cat1.newInstance();
ft.add(R.id.therightframe,genf,tagName);
}else{
ft.attach(genf);
}
this.fragment=genf;
break;
}
case 2:{
this.tagName="cat2";
Cat2 genf= (Cat2) getFragmentManager().findFragmentByTag(this.tagName);
if(genf==null){
genf=Cat2.newInstance();
ft.add(R.id.therightframe,genf,tagName);
}else{
ft.attach(genf);
}
this.fragment=genf;
break;
}
case 3:{
this.tagName="Cat3";
Cat3 genf= (Cat3) getFragmentManager().findFragmentByTag(this.tagName);
if(genf==null){
genf=Cat3.newInstance();
ft.add(R.id.therightframe,genf,tagName);
}else{
ft.attach(genf);
}
this.fragment=genf;
break;
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.detach(fragment);
}
现在,如果有人单击gridview上的任何图像,我将执行碎片事务。在同一空间中替换并加载新碎片。是的,我不会启动新活动。直到一切顺利。但是,当我在这之后选择Cat2 tab时,它不会替换上一步中创建的片段,当网格中的图像被单击时,这看起来很自然,因为在tab listener类中,我没有清空ui,我只是添加和分离。如何解决这个问题。我不想在选项卡侦听器中使用replace,因为如果这样做,我将不得不重新创建这些片段,这将是一件昂贵的事情