• Android PopupWindow 点击消失解决办法


    1、点击PopupWindow 外部区域时,PopupWindow消失

    popMenu = new PopupWindow(getApplicationContext());
    		popMenu.setWidth(LayoutParams.MATCH_PARENT);
    
    		popMenu.setHeight(LayoutParams.MATCH_PARENT);
    
    		popMenu.setBackgroundDrawable(new BitmapDrawable());
    
    		popMenu.setFocusable(true);
    		popMenu.setOutsideTouchable(true);
    

    这里使用了 setOutsideTouchable 属性,具体可以去参考 developer文档。

    使用PopupWindow注意事项:必须设置PopupWindow的backgroundDrawable,否则会出现各种意想不到的bug。

    2、点击PopupWindow 自身时(非按钮控件时),PopupWindow消失

    解决办法:给 PopupWindow的 contentView 注册一个点击事件

    view.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				if(popMenu.isShowing()){
    					dismiss();
    				}
    			}
    		});
    
    popMenu.setContentView(view);
    
    		popMenu.showAtLocation(v, Gravity.BOTTOM, 0, 0);
    		// popMenu.setAnimationStyle(R.style.popwin_anim_style);
    
    		popMenu.update();
    

      

      

  • 相关阅读:
    终于回来了&&邮递员送信
    发射站
    黑匣子
    利维坦——(1)
    预告
    整除(水题)
    BZOJ054_移动玩具_KEY
    BZOJ4034_树上操作_KEY
    树链剖分学习&BZOJ1036
    BZOJ1208_宠物收养所_KEY
  • 原文地址:https://www.cnblogs.com/andgoo/p/3358608.html
Copyright © 2020-2023  润新知