关于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分别处理。

你可能感兴趣的:(关于Fragment)