使用 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
我有一个典型的应用。具有 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