PopupMenu的弹出坐标设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PopupMenu的弹出坐标设置相关的知识,希望对你有一定的参考价值。
参考技术A 高版本sdk中PopupMenu包方法出现了变化,此文章未必适用默认情况下,PopupMenu显示在指定view的上方或下方,但当view的高度太大时会出现下面一种情况,PopupMenu被挤到最边上并且显示不全。微信的效果则是显示在点击坐标上弹出。但是PopupMenu没有设定坐标的方法
通过源码发现PopupMenu.show()方法会执行mPopup.show()。mPopup为MenuPopupHelper类型,再进入MenuPopupHelper的show方法,发现下面还有一个show(int x,int y)方法。所以可以通过反射调用此方法指定PopupMenu的弹出坐标。
在反射时,一开始是这么写的。但是出现了类型转换错误,并且无法导入com.android.internal.view.menu.MenuPopupHelper这个包。后面通过直接获取方法解决了。
具体实现,通过反射调用show(int x,int y)方法。并通过activity的dispatchTouchEvent获取点击的坐标。
以上是关于PopupMenu的弹出坐标设置的主要内容,如果未能解决你的问题,请参考以下文章