ContextMenu position is messed up in Android 7

大兔子大兔子 提交于 2019-12-10 12:59:08

问题


I have an app with a simple listview and context menu in it. pre android 7, everything looks ok:

when clicking an item at the bottom of the list:

when clicking an item at the top of the list:

But wit android 7...

when clicking an item at the bottom of the list:

when clicking an item at the top of the list:

Was there any change in the position of the context menu?


回答1:


I found a solution for this somewhere (can't remember where). The problem is between the new context menu and the Holo themes.

Solution Details:

I added a style in values-v24 folder that looks like:

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

Then, in my default styles.xml I used a style called

AppTheme.Common

That defines all my app style, and an empty style called

<style name="AppTheme" parent="AppTheme.Common" />

and I used that empty style as the default app style. This way, on version > 24, the app uses this extra item regarding context menu overlap anchor to fix the issue (bringing context menu to what they looked like before API 24)




回答2:


If anyone still has the same problem, just add this to your theme folder (v14)

<item name="android:overlapAnchor">true</item>


来源:https://stackoverflow.com/questions/40867621/contextmenu-position-is-messed-up-in-android-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!