gpt4 book ai didi

android - popBackStack 后 fragment 空白

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

我有这个 Activity ,我在其中用偏好 fragment 替换了主要 fragment 。当我在查看首选项后单击返回时,我会得到一个空白(白色)区域,该区域应该是我的 fragment 。如果我旋转屏幕,它就可以正常工作。我的 fragment 中的一切似乎都很好,除了它是空白的。这是我的方法:

Activity 的 onCreate 方法。

 @Override
protected void onCreate(Bundle savedInstanceState) {
.....
if (savedInstanceState == null) {

getFragmentManager().beginTransaction()
.add(MAIN_CONTAINER, new MainFragment())
.commit();
}
}

首选项 fragment 的开始:

public void startPreferencesFragment() {
FragmentManager mFragmentManager = getFragmentManager();
FragmentTransaction mFragmentTransaction = mFragmentManager
.beginTransaction();
MyPreferencesFragment mPrefsFragment = new MyPreferencesFragment();
mFragmentTransaction.addToBackStack(null)
.replace(MAIN_CONTAINER, mPrefsFragment)
.commit();
}

我的 Activity 的onBackPressed:

@Override
public void onBackPressed() {

FragmentManager fm = getFragmentManager();

if (fm.getBackStackEntryCount() > 0) {
fm.popBackStack();

return;

}else {
super.onBackPressed();
}
}

那我做错了什么?

谢谢。

编辑:如果我打开首选项然后旋转然后按回,一切正常。

另外我要提一下,删除 onBackPressed 方法并不能解决问题,它只会退出应用程序。

编辑:原来根本不是 fragment 返回堆栈的问题。基本上我的 fragment 有一个回收 View ,仅此而已。我在 recyclerview 上设置的适配器实例被保留,而 recyclerview 本身是新的,当 fragment 从返回堆栈中返回时,我正在检查适配器是否为 null 设置它。

最佳答案

您已经将事务添加到后台堆栈,无需重写onBackPressed();按下后退按钮时,框架会自动将 Fragment 从堆栈中弹出。我很确定你是“双重”弹出后台。

关于android - popBackStack 后 fragment 空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28773740/

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