gpt4 book ai didi

android - 如何避免 fragment 娱乐?

转载 作者:搜寻专家 更新时间:2023-11-01 07:44:45 26 4
gpt4 key购买 nike

我有 2 个 Fragments F1F2。我使用以下代码从 Activity 打开第一个 Fragment F1:

MyFragment f1 = new MyFragment();
Bundle bundle = new Bundle();
bundle.putString("GameLevelType", "Learn");
dialog.setArguments(bundle);
FragmentTransaction gameTransaction = getSupportFragmentManager().beginTransaction();
gameTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
gameTransaction.add(android.R.id.content, f1).addToBackStack(null).commit();

然后从 Fragment F1 我打开另一个 Fragment F2 使用下面的代码:

MySecondFragment f2 = new MySecondFragment();
Bundle bundle = new Bundle();
FragmentTransaction transaction = ((AppCompatActivity) context).getSupportFragmentManager().beginTransaction();
bundle.putInt("CurrentPosition", getAdapterPosition());
bundle.putIntArray("x", kolamTracingGameList.get(getAdapterPosition()).getX());
bundle.putIntArray("y", kolamTracingGameList.get(getAdapterPosition()).getY());
bundle.putInt("Level", (getAdapterPosition() + 1));
bundle.putString("GameType", "Kolam");
fragment.setArguments(bundle);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.replace(android.R.id.content, f2).addToBackStack(null).commit();

问题是当我关闭 Fragment F2 并且 Fragment F1 出现在前台时。整个 F1 正在重新创建(再次调用 onViewCreated())。我不希望 F1 在前台重新创建。

最佳答案

对于第二个 fragment ,使用添加而不是替换。

replace- 删除现有 fragment 并添加新 fragment 。当在 fragment F2 中按下后退按钮时,将再次调用 oncreateView 中的 fragment 。

add - 保留现有 fragment 并添加一个新 fragment ,这意味着现有 fragment 将处于 Activity 状态并且它们不会处于“暂停”状态。当在 fragment F2 中按下后退按钮时,没有再次调用 fragment F1 的方法。

transaction.add(android.R.id.content, f2).addToBackStack(null).commit();

关于android - 如何避免 fragment 娱乐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47031208/

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