屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案

   接到一个博友的反馈,在屏幕旋转时调用 PopupWindow 的 update 方法失效。使用场景如下:在一个 Activity 中监听屏幕旋转事件,在Activity主布局文件中有个按钮点击弹出一个 PopupWindow,另外在主布局文件中有个
ListView。测试结果发现:如果 ListView 设置为可见(visibile)的话,屏幕旋转时调用的 update 方法无效,如果 ListView 设置为不可见(gone)或者直接删除的话,屏幕旋转时调用的update方法就生效。下面先展示两种情况的效果图对比。

ListView不可见的情况(update生效,效果符合预期)

横屏效果图如下

竖屏效果图如下

ListView可见的情况(update不生效,效果不符合预期)

横屏效果图如下

竖屏效果图如下

看了上面的效果图,再来看看简单的布局实现和Activity代码实现

Activity主布局文件如下



posted @ 2017-12-12 20:30  popfisher  阅读(4719)  评论(0)    收藏  举报