gpt4 book ai didi

Android Fragment 返回堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:04 34 4
gpt4 key购买 nike

我在我的项目中使用了多个 fragment 。我想保存一个 fragment 的状态,并在我回到这里时恢复这个状态。在此 fragment 中,我显示了多个图像,这些图像会在单击按钮时发生变化。我为此使用以下代码:

String backStateName = fragment.getClass().getName();
FragmentManager fragmentManager = getSupportFragmentManager();
boolean fragmentPopped = fragmentManager.popBackStackImmediate(backStateName, 0);
if (!fragmentPopped) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.addToBackStack(backStateName);
fragmentTransaction.commit();
}

它工作正常并保存状态,但它不显示以前的图像。

任何帮助、建议或教程将不胜感激。谢谢。

最佳答案

我正在尝试使用 fragment 列表....

Initilize the framents list

  static List<String> fragments = new ArrayList<String>();

Code to fragment change and take in back stack

   String backStateName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
//fragment not in back stack, create it.
FragmentTransaction ft = manager.beginTransaction();
if(!fragments.contains(backStateName)) {

// ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
// ft.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
ft.replace(R.id.frame, fragment);
ft.addToBackStack(backStateName);
ft.commit();

fragments.add(backStateName);
System.out.println("backStateName" + fragments);
}
else
{


ft.replace(R.id.frame, fragment);
ft.commit();

}

onBackpressed

 @Override
public void onBackPressed() {
if(fragments.size()>0)
{
fragments.remove(fragments.size()-1);
}
super.onBackPressed();
}

for back remove stack

 final android.app.FragmentManager fm = getFragmentManager();

fm.addOnBackStackChangedListener(new android.app.FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {

if (getSupportFragmentManager().getBackStackEntryCount() ==0) {
// dLayout.closeDrawers();
finish();
}
else
{
// dLayout.closeDrawers();

}
}
});

关于Android Fragment 返回堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39343100/

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