如何重用片段

Kh5*_*Kh5 1 android android-fragments fragmenttransaction fragmentmanager

当我替换一个片段时,它会被破坏。我尝试在活动的 onCreate 中创建片段并将其引用保留在活动中,并在我“重新显示”或“重新打开”它时通过调用替换引用来使用它,但这并没有帮助,片段被销毁(替换时)由另一个片段)并重新创建。解决办法应该是什么?

我想要实现的是说WhatsApp,其中不可见时不应销毁片段,除非我没有使用滑动手势而是使用常规按钮。

谢谢。

Rav*_*aha 5

您需要使用addToBackStack()来记住片段交易,如下所示:-

FragmentA fragmentA = new FragmentA();
getFragmentManager().beginTransaction()
    .replace(R.id.YOUR_CONTENT,fragmentA,"YOUR_TARGET_FRAGMENT_TAG")
    .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();
Run Code Online (Sandbox Code Playgroud)

你可以检查片段是否已经存在于堆栈中或不像下面

Fragment fragment = getFragmentManager().findFragmentByTag("YOUR_TARGET_FRAGMENT_TAG");

 if (fragment!=null && fragment instanceof FragmentA) {
   //you are good to go, do your logic   
    }
Run Code Online (Sandbox Code Playgroud)