在网上找了好久,都没合适的答案,苦恼好久,解决了,分享给大家,
问题描述:做类似新浪微博,下面那个加号,点击一下弹出对话框,再次点击空白处消失。
部分代码如下:
private void showDialog() { dialog = new Dialog(this, R.style.md_dialog);//Dialog简单悬浮窗口 View view = LayoutInflater.from(this) .inflate(R.layout.dialog_points, null); TextView tv_dialog_add_pic = (TextView) view .findViewById(R.id.tv_dialog_add_pic); tv_dialog_add_pic.setOnClickListener(this); dialog.setContentView(view); //对话框显示的位置 Window dialogWindow = dialog.getWindow(); WindowManager.LayoutParams lp = dialogWindow.getAttributes(); dialogWindow.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP); lp.y = DensityUtils.dp2px(this, 90); // 新位置Y坐标 dialogWindow.setAttributes(lp); dialog.setCancelable(true); dialog.setCanceledOnTouchOutside(true); dialog.show();//配置都完成后显示dialog //设置点击dialog包含的空白处消失,之前还想着用dialog 里面的方法,发现没有,直接找到那个view设置监听 view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); }