【问题标题】:Why does appcompat-v7:22.2.0 break ActionMode overlaying ActionBar?为什么 appcompat-v7:22.2.0 会破坏 ActionMode 覆盖 ActionBar?
【发布时间】:2015-08-14 19:50:38
【问题描述】:

在我的项目中,我有一个使用动作模式的屏幕:

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

【问题讨论】:

  • 我的第一个建议是使用 22.2.1。
  • 第二个是尝试windowActionModeOverlay,而不是android:windowActionModeOverlay
  • 使用 windowActionModeOverlay 而不是 android:windowActionModeOverlay 解决了它。把它作为答案我会接受它。干杯队友

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


【解决方案1】:

您应该使用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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    相关资源
    最近更新 更多