ActionBarCompat和动态片段

时间:2013-09-03 13:44:44

标签: android dynamic android-fragments android-actionbar-compat

使用ActionBarCompat支持库创建动态片段是否存在问题?

我有一个应用程序,我正在使用ActionBarSherlock(如果重要的话,v4.4)转换为使用ActionBarCompat支持库。它已经适用于从2.2向上的所有Android版本,没有任何问题。在转换为使用ActionBarCompat支持并允许从ActionBarSherlock到新支持库的所有差异后,我仍然有一个剩余的问题。

我的应用程序使用4.x设备和模拟器运行得非常好,但是当我在运行2.2的设备和模拟器上运行它时(还没有尝试过2.3),我创建的任何Activity使用以下模式添加片段到它,片段占用整个屏幕并且操作栏不可见,但它在那里(从getSupportActionBar()返回非null)。

    getSupportFragmentManager()
            .beginTransaction()
            .add(android.R.id.content, frag)
            .commit();

使用布局中的setContent创建的所有片段都可以正常工作。

思想?

2 个答案:

答案 0 :(得分:1)

创建自己的容器,而不是使用android.R.id.content。 Android 2.3.3将ActionBar添加到根视图元素,其中4+将其添加到根视图之外。

ActionBar Tabs with support library

答案 1 :(得分:0)

阅读完Android文档后,在ActionBarShelock和4.x中运行良好的东西在2.x中不能与ActionBarCompat一起使用,但没有明确记录。

如果创建的活动没有setContentView()和通过

添加的片段

getSupportFragmentManager()             .beginTransaction()             .add(android.R.id.content,frag)             .commit();

该片段将涵盖2.2中的ActionBar(可能还有其他Android版本)。使用具有简单布局的显式setContentView并将片段添加到该布局,适用于所有Android版本......