Welcome

首页 / 移动开发 / Android / Android PopupWindow 点击外面取消实现代码

private void showPopupView(){if (mPopupWindow == null){View view = getLayoutInflater().inflate(R.layout.newest_layout, null);mPopupWindow = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);mPopupWindow.setFocusable(true);//需要设置为ture,表示可以聚焦        //需要设置背景,用物理键返回的时候        mPopupWindow.setBackgroundDrawable(new BitmapDrawable(getResources()));        mPopupWindow.setOutsideTouchable(true);view.setOnTouchListener(new OnTouchListener()// 需要设置,点击之后取消popupview,即使点击外面,也可以捕获事件{public boolean onTouch(View v, MotionEvent event){if (mPopupWindow.isShowing()){Trace.Log("-------------------onTouch------------");mPopupWindow.dismiss();}return false;}});}if (mPopupWindow.isShowing()){mPopupWindow.dismiss();}else{View parent = findViewById(R.id.newest);mPopupWindow.showAsDropDown(parent);// 显示再指定控件的下面}}