带有片段的Tabhost重新创建视图

时间:2014-05-30 10:53:49

标签: android android-fragments android-viewpager android-tabhost

我在app上工作哪个主视图是tabhost的活动。 Tabhost包含fagments。我面临的问题是,无论何时我从一个标签切换到另一个标签,都会重新创建片段。这不是预期的行为。当用户在第一个选项卡中填充一些数据时,然后转到第二个并返回第一个所有填充数据消失器。有没有办法阻止tabhost重新创建视图,还是应该使用viewPager?

1 个答案:

答案 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