码迷,mamicode.com
首页 > Windows程序 > 详细

PopuWindow_2

时间:2015-02-09 02:00:44      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

点击一个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;
      }
    });


即可!!

PopuWindow_2

标签:

原文地址:http://www.cnblogs.com/awkflf11/p/4280766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!