android – 检查frgamentActivity oncreate()上的savedinstancestate的原因

android – 检查frgamentActivity oncreate()上的savedinstancestate的原因,第1张

概述我正在研究片段,我查看了文档 here中的教程,其中包含文章主要详细信息示例.我们有两个片段,一个用于文章标题,选择时会显示详细的文章视图(多窗格布局).除了一小部分之外,我得到了大部分教程,为什么他们检查onCreate方法中的savedInstancestate. 所以我的问题是关于容器活动的onCreate()方法.它有这个检查 if (savedInstanceState != null) 我正在研究片段,我查看了文档 here中的教程,其中包含文章主要详细信息示例.我们有两个片段,一个用于文章标题,选择时会显示详细的文章视图(多窗格布局).除了一小部分之外,我得到了大部分教程,为什么他们检查onCreate方法中的savedInstancestate.

所以我的问题是关于容器活动的onCreate()方法.它有这个检查

if (savedInstanceState != null) {                return;            }

当我删除它时,片段在ui中重叠.所以我知道它阻止了这个,但我不知道为什么?我想要一些人向我解释一下.

提前致谢.

编辑:完整的方法

public voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.news_articles);    // Check whether the activity is using the layout version with    // the fragment_container FrameLayout. If so,we must add the first fragment    if (findVIEwByID(R.ID.fragment_container) != null) {        // However,if we're being restored from a prevIoUs state,// then we don't need to do anything and should return or else        // we Could end up with overlapPing fragments.        if (savedInstanceState != null) {            return;        }        // Create an instance of ExampleFragment        headlinesFragment firstFragment = new headlinesFragment();        // In case this activity was started with special instructions from an Intent,// pass the Intent's extras to the fragment as arguments        firstFragment.setArguments(getIntent().getExtras());        // Add the fragment to the 'fragment_container' FrameLayout        getSupportFragmentManager().beginTransaction()                .add(R.ID.fragment_container,firstFragment).commit();    }}
解决方法 我知道了.

关键在于:如果活动被屏幕旋转行为破坏,活动包含的片段会自动保存.

因此,当活动从先前状态(屏幕旋转)恢复时,再次调用onCreate()方法,这意味着当屏幕旋转时将再次添加片段(根据上面的代码).所以我们必须检查onCreate()方法内部,如果我们从旋转恢复if(savedInstanceState!= null)所以不需要重新添加片段,只是什么都不做.

总结

以上是内存溢出为你收集整理的android – 检查frgamentActivity oncreate()上的savedinstancestate的原因全部内容,希望文章能够帮你解决android – 检查frgamentActivity oncreate()上的savedinstancestate的原因所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存