1

在我的项目中,我有一个通过以下方式使用动作模式的屏幕:

mActionMode = getActivity().startActionMode(this);

我需要这个来“覆盖”我的操作栏,而不是把所有东西都往下推。我使用以下主题实现了这一点:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionModeOverlay">true</item>
 </style>

到目前为止,这在使用 appcompat 库的 22.1.0 版本时运行良好:

compile 'com.android.support:appcompat-v7:22.1.0'

这是结果——完美——

在此处输入图像描述

最近我升级到了 appcompat 库的 22.2.0 版本:

compile 'com.android.support:appcompat-v7:22.2.0'

现在我有以下内容:

在此处输入图像描述

如您所见,“覆盖”行为完全被破坏了。我在这里错过了什么吗?

仅供参考 - 我在我的 XML 布局中使用工具栏,然后使用:

 activity.setSupportActionBar(mToolbar);
4

1 回答 1

1

您应该使用appcompatstyle 属性,不带框架前缀:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionModeOverlay">true</item>
</style>

我不是 100% 确定,但我相信对于较新的API 版本,最好保留框架版本,因此:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionModeOverlay">true</item>
    <item name="android:windowActionModeOverlay">true</item>
</style>
于 2015-08-14T11:50:38.290 回答