【发布时间】:2015-01-08 10:17:15
【问题描述】:
我正在制作一个 minSdk = 15 和 targetSdk = 21 的应用,因此我想使用 appcompat-v7 库提供的功能。
我一直想知道在使用 supportlibrary-v7 时是否应该使用 getFragmentManager 或 getSupportFragmentManager。
我现在遇到一个小问题:当使用 getFragmentManager(因此使用框架片段和 fragmenttransaction)时,我无法通过简单地按下后退按钮来弹出后退堆栈 - 我必须进行 backStackCount > 0 检查并手动 popBackStack,否则我的活动就结束了。当我将我的小应用程序切换为使用 v4 类(getSupportFragmentManager 等)时,这个问题得到了解决。我想这很好,但我想有一个指南/最佳实践来知道该走哪条路以及为什么
那么,我的 Activity 继承自 ActionBarActivity(根据 AppCompat-Blog-Entry)并且我正在使用新的工具栏,我应该只使用 v4-Fragments(-Manager, -Transactions) 吗?
我还没有找到任何最佳实践或指导方针。而且我不确定在这两者之间做出决定时要考虑什么:-/
【问题讨论】:
-
我的应用程序中遇到了同样的问题,答案是:使用库提供的关于片段的类。因为有一些像FragmentPagerAdapter 这样的类只能与支持库一起使用,所以最好使用与片段相关的支持库的所有类。
-
实际上有一个v13.FragmentPagerAdapter 可以与框架片段一起使用。但是,这仍然不是 IMO 的真正准则。正如我所说,出于一致性原因,我完全切换到 v4。
标签: android android-fragments android-support-library android-appcompat fragmentmanager