zoukankan      html  css  js  c++  java
  • Fragment的坑

    http://www.jianshu.com/p/d9143a92ad94

    使用add()加入fragment时将触发onAttach(),使用attach()不会触发onAttach()

    使用replace()替换后会将之前的fragment的view从viewtree中删除

    触发顺序:

    detach()->onPause()->onStop()->onDestroyView()

    attach()->onCreateView()->onActivityCreated()->onStart()->onResume()

    使用hide()方法只是隐藏了fragment的view并没有将view从viewtree中删除,随后可用show()方法将view设置为显示

    而使用detach()会将view从viewtree中删除,和remove()不同,此时fragment的状态依然保持着,在使用attach()时会再次调用onCreateView()来重绘视图,注意使用detach()后fragment.isAdded()方法将返回false,在使用attach()还原fragment后isAdded()会依然返回false(需要再次确认)

    执行detach()和replace()后要还原视图的话, 可以在相应的fragment中保持相应的view,并在onCreateView()方法中通过view的parent的removeView()方法将view和parent的关联删除后返回

  • 相关阅读:
    第三章 读书笔记
    第一章 读书笔记
    第二章 读书笔记
    第九章
    第十章
    第8章 蜂鸣器
    第7章 led闪烁
    第6章 第一个Linux驱动程序:统计单词个数
    第5章 搭建S3C6410开发板环境
    第3章 Git使用入门
  • 原文地址:https://www.cnblogs.com/qlky/p/7210418.html
Copyright © 2011-2022 走看看