首页 文章

Android Fragments和setRetainInstance(true)

提问于
浏览
0

我正在使用支持片段,在我的片段中我有setRetainInstance(true) . 如果我们的片段中有setRetainInstance(true),我读取该片段的onCreate()和onDestroy()将不会在配置更改时被调用 . 但仍然活动当我在三星note3中改变字体样式时,会重新创建并调用片段的onCreate() . 这是一个配置更改吗?如果是,为什么片段实例已初始化 . 如果不是配置更改,我们应该如何处理它 . 任何人请澄清 .

1 回答

  • 0

    我发现这个问题很有趣,因为它与配置变更有关 . 如您所知,通常所有配置更改都将触发onCreate()和onDestroy() . 这是有道理的,你的代码通常甚至不关心,除非你不遵守Fragment生命周期 . 为了其他读者,setRetainInstance( true )不应该像你所说的那样触发onCreate()和onDestroy() .

    字体样式更改绝对是配置更改 . 三星可能会重新加载您的应用活动,他们可以做到这一点,他们制作自己的Android主屏幕 . 我找到了一个相关的SO网页@ ...configChanges value for Font Style change in Samsung Device . 阅读该帖子的答案 .

    我的一个建议是将代码放在onCreate()中,这样你就不会关心这个问题了 . 否则,您可能必须覆盖字体更改的方法或可能还有其他更改 .

相关问题