我在app上工作哪个主视图是tabhost的活动。 Tabhost包含fagments。我面临的问题是,无论何时我从一个标签切换到另一个标签,都会重新创建片段。这不是预期的行为。当用户在第一个选项卡中填充一些数据时,然后转到第二个并返回第一个所有填充数据消失器。有没有办法阻止tabhost重新创建视图,还是应该使用viewPager?
答案 0 :(得分:1)
如果您使用.replace()
方法替换Fragment
容器布局,则首先在内部调用.remove()
,然后添加.add()
,以便再次调用onCreateview(...)
。
最好的方法是替换Fragment
容器布局,尝试使用ft.detach(Fragment);
和ft.attach(Fragment);
它做什么?
ft.detach(Fragment); //从FragmentTransaction中分离你的片段
和
下面我给你看一个演示:ft.attach(Fragment)//从FragmentTransaction附加片段
android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
AndroidFragment myfragment= (AndroidFragment) fm.findFragmentByTag("fragment1");
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
if(fragment==null){
/** Create Fragment and adding to fragmenttransaction */
ft.add(R.id.realtabcontent,new AndroidFragment(), "fragment1");
}else{
/** Bring to the front, if already exists in the fragmenttransaction */
ft.attach(myfragment);
}
有关详细信息,请查看此Blog