美文网首页
Android PopWindow点击外边缘消失, 取消其他点击

Android PopWindow点击外边缘消失, 取消其他点击

作者: 天青色等Y雨 | 来源:发表于2020-08-05 09:19 被阅读0次
  • PopWindow设置点击外边缘消失
setOutsideTouchable(true);
  • 设置之后可能会遇到这么一问题:点击外边缘PopWindow消失了, 但是点击位置如果设置有其他点击事件,那也就跟着触发了, 也就是我本想PopWindow消失, 但是却同时触发了其他操作。解决:
setOutsideTouchable(true);
// fix点击外边缘popWindow消失bug; 点击外部PopWindow弹框消失, 禁止触发其他点击事件
setTouchable(true);
setFocusable(true);
  • 给PopWindow外部设置透明度
/**
 * 设置屏幕的背景透明度
 */
public void backgroundAlpha(float bgAlpha) {
      WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes();
      lp.alpha = bgAlpha;
      getActivity().getWindow().setAttributes(lp);
}
调用
private void showWaitHandleDialog() {
      if (mWaitHandleDialog == null) {
         mWaitHandleDialog = new WaitHandlePopWindow(getContext(), bean -> {
                // .....
         });
         mWaitHandleDialog.setOnDismissListener(() -> {
                // 消失的时候设置透明度, 恢复页面显示
                backgroundAlpha(1f);
         });
      }
      if (mWaitHandleDialog.isShowing()) {
            mWaitHandleDialog.dismiss();
      } else {
            mWaitHandleDialog.showAsDropDown(mTopBar, DensityUtils.dpToPx(getContext(), 170), 0);
            // 显示的时候设置透明度
            backgroundAlpha(0.7f);
      }
}

相关文章

网友评论

      本文标题:Android PopWindow点击外边缘消失, 取消其他点击

      本文链接:https://www.haomeiwen.com/subject/dagvrktx.html