搜尋

首頁  >  問答  >  主體

android - popupwindow的isShowing() 始终为false

点击某个按钮出现popupwindow,点击监听的代码如下:

if (wPopupWindow.isShowing()){
      wPopupWindow.dismiss();
}else{
      wPopupWindow.showAsDropDown(layoutFiltrate,0,0);
}

我输出日志,Popuowindow的isShowing()始终显示为false。麻烦各位多多指教。

阿神阿神2773 天前697

全部回覆(2)我來回復

  • 阿神

    阿神2017-04-17 15:18:21

    你不應該是用PopupWindow的isShowing()方法作為展示和隱藏的開關,因為你如果一直沒有呼叫showAsDropDown方法的話,isShowing()回傳值一定是false。可以自訂一個臨時boolean作為展示的開關,如boolean isPopShowing=false;然後透過isPopShowing=!isPopShowing的方法對顯示狀態進行重置

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 15:18:21

    要嘛是你輸出日誌的地方不對,要嘛就是你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;
        。。。

    回覆
    0
  • 取消回覆