美文网首页
PopupWindow的坑

PopupWindow的坑

作者: 奋飞的蜗牛ing | 来源:发表于2017-08-16 20:22 被阅读80次

问题描述

PopupWindow 中的 showAsDropDown(View anchor) 用于在指定锚点View下方显示 PopupWindow,在Android 7.0 (api<=23) 以前是没什么问题的,但是在Android 7.x系统上,会在某些情况下出现兼容问题:

如果指定 PopupWindow 的高度为 MATCH_PARENT,调用 showAsDropDown(View anchor) 时,在 7.0 之前,会在锚点 anchor 下边缘到屏幕底部之间显示 PopupWindow;而在 7.0、7.1 系统上的 PopupWindow 会占据整个屏幕(除状态栏之外)。(SDK >= 24时,PopupWindow高度为 match_parent 时,会占据整个屏幕,需要重新设置。)

如果指定 PopupWindow 的高度为 WRAP_CONTENT, 调用 showAsDropDown(View anchor) 时,便不会出现兼容性的问题。

如果指定 PopupWindow 的高度为自定义的值height,调用 showAsDropDown(View anchor)时, 如果 height > 锚点 anchor 下边缘与屏幕底部的距离, 则还是会出现7.0、7.1上显示异常的问题;否则,不会出现该问题。可以看出,情况1和2是情况3的特例。

解决方案

如果出现上述分析中的兼容性问题,可以使用 showAtLocation() 方法替代 showAsDropDown() , 示例代码如下。

代码片段

参考:http://tianma.pro/post/1634332613/

相关文章

网友评论

      本文标题:PopupWindow的坑

      本文链接:https://www.haomeiwen.com/subject/ralwrxtx.html