开发者社区> 问答> 正文

android fragment重叠问题

我的导入的是

import android.app.FragmentManager;
 import android.app.FragmentTransaction;
这俩个包,因为我导入v4包getSupportFragmentManager出不来,所以我用的是app包,
FragmentManager fm=getFragmentManager();
 FragmentTransaction ft=fm.beginTransaction();
 PersonageCentreHomeFragment home = new PersonageCentreHomeFragment();
 ft.add(R.id.personage_my, home);
 ft.commit();

这里是下面的代码,我这样写之后,fragment会重现透明背景,重叠现象,之前做还好好的,不知道这次是怎么了xml布局文件我是用fragmentLayout来做的

展开
收起
爵霸 2016-06-12 11:15:46 2219 0
1 条回答
写回答
取消 提交回答
  • 解决方法如下,在进入onCreate函数时,先去判断savedInstanceState是否为null,如果不为null,则表示里面有保存这四个fragment。则不再重新去add这四个fragment,而是通过Tag从前保存的数据中直接去读取。相关代码如下:\

             FragmentManager fManager;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            fManager = getFragmentManager();
            if (savedInstanceState != null) {
                allFrg = (AllOfficialAccountFragment) fManager.findFragmentByTag("allFrg");
                movieFrg = (MovieOfficialAccountFragment) fManager.findFragmentByTag("movieFrg");
                newsFrg = (NewsOfficialAccountFragment) fManager.findFragmentByTag("newsFrg");
                otherFrg = (OtherOfficialAccountFragment) fManager.findFragmentByTag("otherFrg");           
            }
            super.onCreate(savedInstanceState);     
        }
    

    这样子仍是对之前保存的fragment操作,成功解决了重叠的问题。

    2019-07-17 19:33:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载