点击某个按钮出现popupwindow,点击监听的代码如下:
if (wPopupWindow.isShowing()){
wPopupWindow.dismiss();
}else{
wPopupWindow.showAsDropDown(layoutFiltrate,0,0);
}
我输出日志,Popuowindow的isShowing()始终显示为false。麻烦各位多多指教。
点击某个按钮出现popupwindow,点击监听的代码如下:
if (wPopupWindow.isShowing()){
wPopupWindow.dismiss();
}else{
wPopupWindow.showAsDropDown(layoutFiltrate,0,0);
}
我输出日志,Popuowindow的isShowing()始终显示为false。麻烦各位多多指教。
要么是你输出日志的地方不对,要么就是你wPopupWindow.showAsDropDown方法根本没调用过。
/**
* <p>Indicate whether this popup window is showing on screen.</p>
*
* @return true if the popup is showing, false otherwise
*/
public boolean isShowing() {
return mIsShowing;
}
public void showAsDropDown(View anchor, int xoff, int yoff, int gravity) {
。。。
mIsShowing = true;
。。。
3 回答882 阅读✓ 已解决
2 回答2.1k 阅读
2 回答988 阅读✓ 已解决
1 回答774 阅读✓ 已解决
2 回答888 阅读
2 回答824 阅读
1 回答765 阅读
你不应该是用PopupWindow的isShowing()方法作为展示和隐藏的开关,因为你如果一直没有调用showAsDropDown方法的话,isShowing()返回值一定是false。可以自定义一个临时boolean作为展示的开关,如boolean isPopShowing=false;然后通过isPopShowing=!isPopShowing的方法对显示状态进行重置