所以我的问题是关于容器活动的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的原因所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)