关于Fragment

Fragment的使用

直接在布局文件中使用

在布局文件中设置<fragment> 标签,设置标签对应的Fragment类的name 即可

动态添加

在Activity中利用FragmentTransaction 的 replace ,add, remove ,hide ,show 方法来动态的 添加删除隐藏显示Fragment ,需要在Activity的Layout 中有FrameLayout

Fragment重叠异常

原因

1、发生了页面重启(旋转屏幕、内存不足等情况被强杀重启)。
FragmentManager帮我们管理Fragment,当发生“内存重启”,他会从栈底向栈顶的顺序一次性恢复Fragment;
2、重复replace|add Fragment 或者 使用show , hide控制Fragment。
在onCreate中加载Fragment,并且没有判断saveInstanceState==null,导致重复加载了同一个Fragment导致重叠。

解决方式

添加Fragment 的时候绑定一个tag,这样当Activity重启的时候利用Fragmentmanager的 findFragmentByTag方法找到对应的Fragment,然后hide(),show()对应的Fragment
也可以利用getFragments()可以获取到当前FragmentManager管理的栈内所有Fragment,然后再对每一个Fragment分别处理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容