使用 AppCompatActivity 或 FragmentActivity 时片段事务不起作用

Fragment Transaction not working when using AppCompatActivity or FragmentActivity

我有一个典型的应用。具有 FrameLayout 的 activity,在此布局中,我想在片段之间切换。这通常很容易完成:

getFragmentManager().beginTransaction()
                .replace(R.id.ac_container, new FrOverview())
                .addToBackStack(null)
                .commit();

问题是,即使我使用 .addToBackStack(null)(而且我知道它已被添加,因为堆栈计数增加),当我按回键时,我退出了应用程序。我一直在尝试很多不同的代码,并在 Whosebug 上检查了大多数线程,但我无法让它与代码一起工作(方法调用等)。

但是!通过更改 activity class 的扩展 class,我可以让它工作。如果我的 class 扩展 Activity,它工作正常。但是,如果我使用 AppCompatActivity(进而扩展 FragmentActivity),那么它就会出现如前所述的不良行为。

感觉这一定是 Android 部分的错误,据我所知我没有做错任何事。

有人对如何解决这个问题有什么建议吗?即获取后台功能并保留 ActionBar!

AppCompatActivity使用SupportFragmentManager,你需要 切换到 SupportFragment 和 SupportFragmentManager