【问题标题】:Overlapping Fragments when resuming Activity恢复活动时重叠的片段
【发布时间】:2013-09-03 11:00:04
【问题描述】:

我的 Android 应用有问题,我正在使用 Android STUDIO IDE 进行开发。 几乎是当我将应用程序留在后台几分钟,或者被系统杀死或者我混合了片段的不同布局时。 我在下面放了一张图片:

我已经尝试了各种方法,如果你也有其他人写的话。提前谢谢你。

super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));

        actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        ActionBar.TabListener tl = new ActionBar.TabListener() {
            @Override
            public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {

            }

            @Override
            public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
                pager.setCurrentItem(tab.getPosition());
                actionBar.setSelectedNavigationItem(tab.getPosition());
            }

            @Override
            public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {

            }
        };

        String label1 = getResources().getString(R.string.label1);
        ActionBar.Tab tab;
        tab = actionBar.newTab();
        tab.setText(label1);

        tab.setIcon(R.drawable.download);


        //tab.setIcon(R.drawable.data);
        tab.setTabListener(tl);
        actionBar.addTab(tab);

        String label2 = getResources().getString(R.string.label2);
        tab = actionBar.newTab();
        tab.setText(label2);
        tab.setIcon(R.drawable.search);


        tab.setTabListener(tl);
        actionBar.addTab(tab);

        String label3 = getResources().getString(R.string.label3);
        tab = actionBar.newTab();
        tab.setText(label3);
        tab.setIcon(R.drawable.television);

        tab.setTabListener(tl);
        actionBar.addTab(tab);

图片:

【问题讨论】:

  • 请贴出你的 Fragments 的代码和你的 Activity 的代码,尤其是 onCreate(...) 和 onResume(...) 方法。
  • 在包含 Fragments 的 Activity 中,是的,可能是 MainActivity。
  • stackoverflow.com/questions/12529499/… ...阅读最佳答案并关注答案中的“重叠”...
  • 我不太明白!你能解释一下吗?

标签: android layout android-fragments activity-lifecycle


【解决方案1】:

所以问题是您在 onCreate 中添加了片段 A。导航到片段 B 后,您的活动将进入后台。在某些情况下,如您所知,android 可以杀死您的后台活动并强制它在前台重新创建自己。因此,您的活动使用片段 B 重新创建自己,这是它进入后台时的最后一个状态,并添加片段 A,因为调用了 onCreate。您可以通过在 onCreate 中检查已保存的实例状态来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多