0

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

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

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

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

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

想法?

4

2 回答 2

1

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

带有支持库的 ActionBar 选项卡

于 2013-09-03T13:56:04.957 回答
0

在阅读了 Android 文档之后,在 ActionBarShelock 和 4.x 中运行良好的东西在带有 ActionBarCompat 的 2.x 中不起作用,但没有明确记录。

如果在没有 setContentView() 和通过添加片段的情况下创建活动

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

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

于 2013-09-03T14:12:28.077 回答