最近在做项目的时候,用了最熟悉的Fragment,但是每次程序出现BUG,程序重新加载的时候该Fragment就不再显示了,但是依然能点击到,让人很是头疼,一开始一直在寻找原因,排除了代码不规范的情况,最后还是决定去网上找API(中文,别怪小弟英文差),最后找到了BUG的解决方法!下面开始上图
这是程序正常状态下显示的Fragment
红色部分为嵌套的Fragment,出现BUG就这样了,每次都这样,但是功能键都能正常获取到焦点。
解决方法:
原文:
不断的旋转屏幕,你会发现每旋转一次屏幕,屏幕上就多了一个FragmentOne的实例,并且后台log会打印出许多套生命周期的回调。
当屏幕发生旋转,Activity发生重新启动,默认的Activity中的Fragment也会跟着Activity重新创建;这样造成当旋转的时候,本身存在的Fragment会重新启动,然后当执行Activity的onCreate时,又会再次实例化一个新的Fragment,这就是出现的原因。
实行方法:
在每次实例化Fragment 的Activity或者Fragment中,对onSaveInstanceState==null进行判断,为bull时初始化Fragment