1. 程式人生 > >Android PopupWindow 點選消失解決辦法

Android PopupWindow 點選消失解決辦法

最近專案中用到了PopupWindow,需要點選PopupWindow  的時候,PopupWindow隱藏掉,總結了一下有2中實現方式。

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();