Android下 PopupWindow弹出另一个PopupWindow出错解决

今天遇到一个bug" Unable to add window -- token android.view.ViewRootImpl$W@20485acc is not valid; is your activity running".没有找到Activity。到网上各种找。

发现了原因是popupwindow是以Activity为载体的,所以在使用
(相对某个控件的位置,有偏移,xoff 为 X 轴的偏移量,yoff 为 Y 轴的偏移量) pop.showAsDropDown(View anchor, int xoff, int yoff)这个方法时,由于我是想位于第一个PopupWindow上的控件弹出另外一个,导致了出错。最后只能pop.showAtLocation(View parent, int gravity, int x, int y)方法各种调位置才解决。

例子代码:

// 相对某个控件的位置(正左下方),无偏移
pop.showAsDropDown(View anchor) 
// 相对某个控件的位置,有偏移,xoff 为 X 轴的偏移量,yoff 为 Y 轴的偏移量                        
 pop.showAsDropDown(View anchor, int xoff, int yoff)
// 在父容器的什么位置,gravity 为相对位置,如:正中央 Gravity.CENTER、下方 Gravity.BOTTOM、Gravity.RIGHT|Gravity.BOTTOM 右下方等,后面两个参数为 x/y 轴的偏移量。
pop.showAtLocation(View parent, int gravity, int x, int y) 

     
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容