Fragment保存页面不销毁


在用fragmenttabhost做页面切换的时候,发现只要一来回切换fragment,fragment页面就会重新初始化,也就是执行onCreateView()方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态

解决方案:

在Fragment onCreateView方法中缓存View

代码实现:

protected WeakReference<View> mRootView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // detach/attach can lead to view recreate frequently
        if (mRootView == null || mRootView.get() == null) {
            View view=inflater.inflate(R.layout.tab_fragment, null);  
            mRootView = new WeakReference<View>(view);
        } else {
            ViewGroup parent = (ViewGroup) mRootView.get().getParent();
            if (parent != null) {
                parent.removeView(mRootView.get());
            }
        }
        return mRootView.get();
    }

更多相关文章

  1. Android欢迎页面自动跳转和触摸进入首页
  2. studio更新时候,不小心点了ignore,无法更新的解决方法
  3. android之发送短信的方法研究
  4. SQLite的Android光标在方法调用时崩溃
  5. android 2D 游戏的开发的方法
  6. 在Skobbler中完成导航时,确定“街边”的最佳方法是什么?
  7. 【Camera】Android平台Camera实时滤镜实现方法
  8. Fragment的setUserVisibleHint方法实现视频音频播放暂停
  9. 通过ViewPager实现类似微信的页面切换(Fragment篇)

随机推荐

  1. 绝对值得推荐的10本PHP书籍!
  2. 2021年,为什么你该学PHP?!!
  3. 详解五种常见的PHP设计模式
  4. PHP标准库 (SPL)之Countable用法示例
  5. 2021年PHP面试题大全
  6. 30天php学习记录(换行符)
  7. 一小时学会简易在线投票系统(php)
  8. 详解PHP中abstract(抽象)、final(最终)和
  9. PHP的中间件是什么?有什么作用?
  10. PHP预定义接口之Iterator用法示例