Android 7 中的上下文菜单位置混乱
ContextMenu position is messed up in Android 7
我有一个带有简单列表视图和上下文菜单的应用程序。
pre android 7, 一切正常:
单击列表底部的项目时:
单击列表顶部的项目时:
但是机智 android 7...
单击列表底部的项目时:
单击列表顶部的项目时:
上下文菜单的位置有变化吗?
我在某个地方找到了解决这个问题的方法(不记得在哪里)。
问题出在新的上下文菜单和 Holo 主题之间。
解决方案详情:
我在 values-v24 文件夹中添加了一个样式,如下所示:
<resources>
<style name="ContextPopupMenuStyleLight" parent="@android:style/Widget.Holo.Light.PopupMenu">
<item name="android:overlapAnchor">true</item>
</style>
<style name="ContextPopupMenuStyleDark" parent="@android:style/Widget.Holo.PopupMenu">
<item name="android:overlapAnchor">true</item>
</style>
<style name="AppTheme" parent="AppTheme.Common" >
<item name="android:contextPopupMenuStyle">@style/ContextPopupMenuStyleLight</item>
</style>
然后,在我的默认 styles.xml 中,我使用了一种名为
的样式
AppTheme.Common
这定义了我所有的应用样式,以及一个名为
的空样式
<style name="AppTheme" parent="AppTheme.Common" />
并且我使用该空样式作为默认应用样式。
这样,在版本 > 24 上,应用程序使用这个关于上下文菜单重叠锚点的额外项目来解决问题(将上下文菜单恢复到 API 24 之前的样子)
如果还有人遇到同样的问题,
只需将其添加到您的主题文件夹 (v14)
<item name="android:overlapAnchor">true</item>
我有一个带有简单列表视图和上下文菜单的应用程序。 pre android 7, 一切正常:
单击列表底部的项目时:
单击列表顶部的项目时:
但是机智 android 7...
单击列表底部的项目时:
单击列表顶部的项目时:
上下文菜单的位置有变化吗?
我在某个地方找到了解决这个问题的方法(不记得在哪里)。 问题出在新的上下文菜单和 Holo 主题之间。
解决方案详情:
我在 values-v24 文件夹中添加了一个样式,如下所示:
<resources>
<style name="ContextPopupMenuStyleLight" parent="@android:style/Widget.Holo.Light.PopupMenu">
<item name="android:overlapAnchor">true</item>
</style>
<style name="ContextPopupMenuStyleDark" parent="@android:style/Widget.Holo.PopupMenu">
<item name="android:overlapAnchor">true</item>
</style>
<style name="AppTheme" parent="AppTheme.Common" >
<item name="android:contextPopupMenuStyle">@style/ContextPopupMenuStyleLight</item>
</style>
然后,在我的默认 styles.xml 中,我使用了一种名为
的样式AppTheme.Common
这定义了我所有的应用样式,以及一个名为
的空样式<style name="AppTheme" parent="AppTheme.Common" />
并且我使用该空样式作为默认应用样式。 这样,在版本 > 24 上,应用程序使用这个关于上下文菜单重叠锚点的额外项目来解决问题(将上下文菜单恢复到 API 24 之前的样子)
如果还有人遇到同样的问题, 只需将其添加到您的主题文件夹 (v14)
<item name="android:overlapAnchor">true</item>