PopuWindow_2

点击一个popupwindow窗口之外的区域popupwindow消失,带来的问题!!

popupwindow窗口之外的区域popupwindow消失 , 以前说过需要设置:

mPopupWindow.setFocusable(true); // 设置PopupWindow可获得焦点
    mPopupWindow.setTouchable(true); // 设置PopupWindow可触摸
    mPopupWindow.setOutsideTouchable(true); // 设置非PopupWindow区域可触摸
    mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.chooseballbg));//
    // 这句话必须有,否则
    // // 按返回键
    // // popwindow不能消失 或者加入这句话
    // ColorDrawable dw = new ColorDrawable(-00000);
    // mPopupWindow.setBackgroundDrawable(dw);

但是:  加入这些之后,我给Popwindow加了动画的,出现一个恶心的问题:就是popwindow在执行动画过程中,如果Popwindow上有button类似的控件,控件有背景色的变化,就会带来非常恶心的现象: 点击的控件的那一块竟然出现漏洞了,透明的一块,这就是

mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.chooseballbg));//

带来的恶果!!  咋办呢?  我这样做的:这句话我不用了!!  用别的方法来实现popwindow的dismiss。

用这种方法:就是利用popwindow内部的空间加入按键事件!!

这样的:

LinearLayout layouttemp = (LinearLayout) view
        .findViewById(R.id.linearlayout_blank);
    layouttemp.setFocusable(true);
    layouttemp.setFocusableInTouchMode(true);
    layouttemp.setOnKeyListener(new OnKeyListener() {
      public boolean onKey(View v, int keyCode, KeyEvent event) {
        // 手机键盘上的返回键
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
          mPopupWindow.dismiss();
          break;
        }
        return false;
      }
    });

即可!!

时间: 2024-10-14 23:10:54

PopuWindow_2的相关文章