Android FragmentationX: 使用 popTo() 移除栈顶 Fragment 后如何恢复?
在使用popTo()方法移除栈顶Fragment后,下次进入时需要重新添加该Fragment到栈中以恢复。\n\n可以通过以下几种方式来重新添加Fragment:\n\n1. 在Activity或Fragment的onCreate()方法中使用FragmentManager的beginTransaction()方法开始一个新的事务,并使用add()方法将Fragment添加到容器中。\n\njava\nFragmentManager fragmentManager = getSupportFragmentManager();\nFragmentTransaction transaction = fragmentManager.beginTransaction();\ntransaction.add(R.id.fragment_container, new MapManagerFragment());\ntransaction.commit();\n\n\n请将上述代码中的R.id.fragment_container替换为你的Fragment容器的ID。\n\n2. 如果你在Activity或Fragment的布局文件中使用了Fragment标签来定义容器,Fragment会在布局文件中自动恢复。\n\nxml\n<FrameLayout\n android:id="\@+id\/fragment_container"\n android:layout_width="match_parent"\n android:layout_height="match_parent" />\n\n\n在上面的代码中,FrameLayout用作Fragment的容器。\n\n3. 使用FragmentManager的findFragmentByTag()方法来查找之前添加的Fragment,如果找到了则不需要再次添加。\n\njava\nFragmentManager fragmentManager = getSupportFragmentManager();\nMapManagerFragment fragment = (MapManagerFragment) fragmentManager.findFragmentByTag("MapManagerFragment");\nif (fragment == null) {\n fragment = new MapManagerFragment();\n fragmentManager.beginTransaction()\n .add(R.id.fragment_container, fragment, "MapManagerFragment")\n .commit();\n}\n\n\n在上面的代码中,我们使用findFragmentByTag()方法来查找之前添加的MapManagerFragment,如果找到了则不需要再次添加,否则就添加新的Fragment。\n\n请根据你的具体情况选择适合的方法来恢复被移除的Fragment。
原文地址: https://www.cveoy.top/t/topic/p1Lc 著作权归作者所有。请勿转载和采集!