【发布时间】:2015-06-03 12:44:20
【问题描述】:
我有一个典型的应用程序。一个有 FrameLayout 的活动,在这个布局中我想在片段之间切换。这通常通过以下方式轻松完成:
getFragmentManager().beginTransaction()
.replace(R.id.ac_container, new FrOverview())
.addToBackStack(null)
.commit();
问题是,即使我使用.addToBackStack(null)(而且我知道它已被添加,因为堆栈计数增加),当我按下返回时我退出应用程序。我一直在尝试很多不同的代码,并在 Stackoverflow 上检查了大多数线程,但我无法让它与代码一起工作(方法调用等)。
但是!通过更改我的活动类的扩展类,我可以让它工作。如果我的课程扩展Activity,它工作正常。但是如果我使用AppCompatActivity(它又扩展了FragmentActivity),那么它就会出现前面解释的不良行为。
感觉这一定是 Android 部分的错误,据我所知,我没有做错任何事。
有人对如何解决这个问题有任何建议吗?即获取返回功能并保留 ActionBar!
【问题讨论】:
-
使用
getSupportedFragmentManager进行分片交易并将您的分片扩展至android.support.v4.app.Fragment -
FrOverview() 是 android.support.v4.app.Fragment 类型或 android.app.Fragment 类型。
标签: android android-fragments android-fragmentactivity android-appcompat back-stack