今天遇到一个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)
网友评论