【问题标题】:Fragment Transaction not working when using AppCompatActivity or FragmentActivity使用 AppCompatActivity 或 FragmentActivity 时,片段事务不起作用
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 这又需要我将支持库中的 Fragments 更改为 android.support.v4.app.Fragment ;) 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多