java - 为什么 appcompat-v7 :22. 2.0 会破坏 ActionMode 覆盖 ActionBar?

标签 java android android-actionbar android-appcompat android-actionmode

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

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'

这是结果 - 完美 -

enter image description here

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

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

现在我有以下内容:

enter image description here

如您所见,“覆盖”行为已完全失效。我在这里遗漏了什么吗?

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

 activity.setSupportActionBar(mToolbar);

最佳答案

您应该使用 appcompat 样式属性,不带框架前缀:

<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>

关于java - 为什么 appcompat-v7 :22. 2.0 会破坏 ActionMode 覆盖 ActionBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993573/

相关文章:

java - com.sun.net.httpserver.HttpExchange 属性是否已损坏?

java - 在 Swing 的 Tablelayout 中设置单元格的边距/插入

java - 为什么 Vista 机器上的 Java 报告它在 XP 上?

java - 即使在实现 onSaveInstanceState() 和 onRestoreInstanceState() 方法后也无法保存我的 Activity 状态

android - Android 支持库中的 ActionBar#setDefaultDisplayHomeAsUpEnabled 是什么?

java - android.support.v4.view.ViewPager 在 android.app 包中是否有等效项以及为什么是早期版本?

用于自定义监听器的 Android 数据绑定(bind)库 lambda

android - 如何使用抽屉导航添加可拖动图标

android - Android 中固定选项卡内的固定选项卡

android - 使用 ActionBar 旋转 Android 的双 fragment