我有一张带可视寻呼机的小报。viewpager有四个片段f1、f2、f3和f4。f1包含一个framelayout,它可以有两个片段f11和f12。最初,我在framelayout中添加了f11,代码如下。

Fragment11 fragment11 = new Fragment11();
fragment11.setArguments(getActivity().getIntent().getExtras());
getActivity().getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, fragment11, Constants.FRAGMENT_11)
                .commit();

F11包含ListView。单击此列表视图中的任何项目/行时,F11将替换为F12。F12是一个细节片段。
Fragment12 fragment12 = new Fragment12();
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment12, Constants.FRAGMENT_12)
                    .addToBackStack(null)
                    .commit();

对于正常的应用程序流,它工作正常。现在假设我现在处于片段12,我按下了Home按钮。现在我打开任何繁重的应用程序(相机或任何其他应用程序)从内存中删除我的应用程序。现在我又启动了我的应用程序。
现在有两个碎片11和一个碎片12同时可见。当我按下后退时,碎片12被移除,现在可以看到两个碎片11。当我单击fragment11的listview行时,顶部的fragment11被fragment12替换,但是底部的fragment11仍然存在。
这就是我想要的:
当应用程序从后台进入前台时,碎片12应该是可见的,当我按下后退时,碎片12应该弹出显示碎片11。
我该怎么做?

最佳答案

我知道为时已晚,但这个答案可以帮助别人。这不是一个合适的解决办法,但对我有效。所以把android:clickable="true"android:background="?android:attr/colorBackground"放到片段的根视图中。希望这能奏效。

10-07 12:39