Fragment 实例化的时候尽量不要用构造参数,使用Fragment.setArguments(Bundle bundle)这种方式比较靠谱(横竖屏切换)
http://www.tuicool.com/articles/j22E3u 最后几句话精髓
通过此方法可以看到,最终会通过反射无参构造实例化一个新的Fragment,并且给mArgments初始化为原先的值,而原来的Fragment实例的数据都丢失了,并重新进行了初始化。
通过上面的分析,我们可以知道Activity重新创建时,会重新构建它所管理的Fragment,原先的Fragment的字段值将会全部丢失,但是通过Fragment.setArguments(Bundle bundle)方法设置的bundle会保留下来。所以尽量使用 Fragment.setArguments(Bundle bundle)方式来传递参数。
网友评论