showAsDropDown重力参数不起作用

阴影

我试图PopUpWindow在锚定视图上水平居中放置a ,但该Gravity.CENTER参数被忽略。

这是我正在使用的方法:

popupWindow.showAsDropDown(anchorView, 0, 0, Gravity.CENTER);

无论我输入什么CENTER重力值(TOP或BOTTOM也不起作用),弹出窗口始终显示在同一位置:锚点的左上角,除非我使用START或END值。

文档和javaDoc并未列出对其接受的值的任何限制,因此我假定它也接受任何CENTER,TOP和BOTTOM值:https : //developer.android.com/reference/android/widget/PopupWindow #showAsDropDown(android.view.View,%20int,%20int,%20int)

我还使用比弹出窗口更小,相等和更大的锚点视图对此进行了测试,并且弹出窗口设置为不按预期填充屏幕宽度。

看来此方法与不采用重力参数的等效方法没有什么不同

popupWindow.showAsDropDown(anchorView, 0, 0);

这是一个错误还是不是应该使用的方式?

TWL

对于PopupWindow.showAsDropDown(),似乎按预期方式工作,通过其源进行跟踪,您最终可以看到引力参数仅适用于水平值。

追踪gravityPopupWindow.showAsDropDown()PopupWindow.findDropDownPosition()的值,我们已经可以看到提示@param gravity horizontal gravity specifying popup alignment

然后再深入Gravity.getAbsoluteGravity()也暗示了同一件事@param gravity The gravity to convert to absolute (horizontal) values.

但是我相信您想要实现的是在Show a PopupWindow central中,它使用PopupWindow.showAtLocation()

PopupWindow.showAtLocation(查看父级,int重力,int x,int y)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章