gpt4 book ai didi

android - 从后台堆栈中删除 fragment

转载 作者:IT老高 更新时间:2023-10-28 13:24:51 25 4
gpt4 key购买 nike

当平板电脑纵向放置时,我在 Activity 中有 3 个 fragment 。但是,我在风景中只有 2 个这样的 fragment 。我遇到的问题是当从纵向到横向时, Activity 正在创建第三个 fragment 。我收到错误,因为无法创建此 fragment 。

我发现这个 fragment 正在被创建,因为它在后台堆栈中。

我曾尝试使用 onDestroy 方法删除 fragment

FragmentTransaction f = fragmentManager.beginTransaction();
f.remove(mf);
f.commit();

但是我收到一条错误消息,提示我在 onSaveInstanceState 之后无法使用此函数

从后台堆栈中取出这个 fragment 的正确方法是什么?

更新

我可能应该补充一点,我遇到问题的 fragment 是来自这个库的 mapFragment

https://github.com/petedoyle/android-support-v4-googlemaps

我的使用方式是这样的

mf = MapFragment.newInstance(1, true);

ft = fragmentManager.beginTransaction();
ft.replace(R.id.mapContainer, mf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack("map");
ft.commit();

最佳答案

您从 FragmentTransaction 添加到后台状态并使用 FragmentManager 弹出方法从后台删除:

FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove(myFrag);
trans.commit();
manager.popBackStack();

关于android - 从后台堆栈中删除 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com