恢复Activity时出现重叠片段

3

我在使用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);

图片: 在此输入图片描述

(注:该内容为图片描述,未包含实际翻译内容)

请发布您的Fragment和Activity的代码,特别是onCreate(...)和onResume(...)方法的代码。 - Philipp Jahoda
包含Fragments的Activity,是的,可能是MainActivity。 - Philipp Jahoda
请阅读 Stack Overflow 的此问题的最佳答案,并着重关注答案中提到的“重叠”问题。 - Robert Rowntree
我不是很理解!你能解释一下吗? - lillogoal
1个回答

2

问题在于您在onCreate中添加了片段A。 在导航到片段B后,您的活动进入后台。 在某些情况下,正如您所知道的那样,Android可以杀死您的后台活动,并在回到前台时强制重新创建它。 因此,您的活动会重新创建自己,其中包括片段B,这是它进入后台时的最后状态,以及添加片段A,因为调用了onCreate。 您可以通过在onCreate中进行savedinstancestate检查来解决此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接