在我的项目中,我有一个通过以下方式使用操作模式的屏幕:
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);
最佳答案
您应该使用 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/