gpt4 book ai didi

android - 扩展 AppCompatActivity 时 fragment 返回堆栈不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:25 25 4
gpt4 key购买 nike

我正在使用新的 AppCompatActivityAppCompat 中介绍库版本 22.1。

当我扩展此 Activity 时,硬件后退按钮不再弹出我的 Fragment 的返回堆栈,而是关闭 Activity。

以下是我在 Activity 中更改 fragment 的方式:

public void changeFragment(Fragment f) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_holder, f);
ft.addToBackStack(null);
ft.commit();
}

如果我改变 MainActivity extends AppCompatActivityMainActivity extends Activity问题消失了,我可以通过我的 fragment 倒退。

将调用更改为 getFragmentManager()getSupportFragmentManager()导致运行 Android < 5.0 的设备失去 Material 主题,这是实现 AppCompatActivity 的主要原因首先。

我的 list 中引用的样式 <application android:theme="@style/AppTheme">

<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary_material_light</item>
<item name="colorPrimaryDark">@color/primary_dark_material_light</item>
<item name="colorAccent">@color/accent_material_light</item>
</style>

最佳答案

我能够通过覆盖我的 Activity 中的 onBackPressed() 来解决这个问题:

@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}

如果有人知道为什么在使用 AppCompatActivity 时需要这个额外的步骤,我很想知道。

关于android - 扩展 AppCompatActivity 时 fragment 返回堆栈不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29787250/

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