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

2020-08-05  本文已影响0人  天青色等Y雨
setOutsideTouchable(true);
setOutsideTouchable(true);
// fix点击外边缘popWindow消失bug; 点击外部PopWindow弹框消失, 禁止触发其他点击事件
setTouchable(true);
setFocusable(true);
/**
 * 设置屏幕的背景透明度
 */
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);
      }
}
上一篇 下一篇

猜你喜欢

热点阅读