关于popupWindow点击外层不能消失的问题

qq_29637837 2016-06-16 04:09:01
如图:问题描述: 主界面是iistview 里面嵌套gridview,点击toolbar弹出popwindow布局xml,xml显示设置为上下铺满左边弹出
...全文
1444 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36620877 2017-09-01
  • 打赏
  • 举报
回复
#warning 改啦
- (void)lew_presentPopupView:(UIView *)popupView animation:(id<LewPopupAnimation>)animation dismissed:(void (^)(void))dismissed{
[self _presentPopupView:popupView animation:animation backgroundClickable:NO dismissed:dismissed];
}
[self _presentPopupView:popupView animation:animation backgroundClickable:NO dismissed:dismissed];

问题在这里设置YES和NO实现点击背景是否消失
口乎口及 2016-09-18
  • 打赏
  • 举报
回复
很不错,,问题成功解决
qq_29637837 2016-06-20
  • 打赏
  • 举报
回复
问题解决 基础有点弱了 原因是没有吧show放在最后一句执行 popupWindow.showAsDropDown(slideText, -30, -160);
qq_29637837 2016-06-16
  • 打赏
  • 举报
回复
private void initPopupWindow() { if (popupWindow == null) { View view = LayoutInflater.from(HomeActivity.this).inflate(R.layout.content_table, null); popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT); //弹出动画 popupWindow.setAnimationStyle(R.style.AnimationFade); //从什么位置弹出并设置偏移量 popupWindow.showAsDropDown(slideText, -30, -160); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); popupWindow.setTouchable(true); // 设置背景颜色 ColorDrawable cd = new ColorDrawable(0x000000); popupWindow.setBackgroundDrawable(cd); WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 0.4f; getWindow().setAttributes(lp); popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { //在dismiss中恢复透明度 public void onDismiss() { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 1f; getWindow().setAttributes(lp); } }); popupWindow.setTouchInterceptor(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (popupWindow.isShowing()) { popupWindow.dismiss(); return true; } return false; } }); } }
ink_s 2016-06-16
  • 打赏
  • 举报
回复
代码贴出来看看
qq_29637837 2016-06-16
  • 打赏
  • 举报
回复
引用 6 楼 ink_s 的回复:
是不是popupWindow全屏了 或者代码中写了不准外面弹出 或者popupWindow不获得焦点
popupWindow 里面item可以设置点击事件并且dismiss,也没有全屏,
ink_s 2016-06-16
  • 打赏
  • 举报
回复
是不是popupWindow全屏了 或者代码中写了不准外面弹出 或者popupWindow不获得焦点
qq_29637837 2016-06-16
  • 打赏
  • 举报
回复
引用 3 楼 u013290250 的回复:
你给外层一个点击事件,不就可以了。
popupWindow.setTouchInterceptor(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (popupWindow.isShowing()) { popupWindow.dismiss(); return true; } return false; } }); 这个是吧???
qq_29637837 2016-06-16
  • 打赏
  • 举报
回复
背景设置了的 我先写的dome popupWindow中间弹出然后点击外层任意位置都能退出,但是在项目中就出问题了
怀君 2016-06-16
  • 打赏
  • 举报
回复
你给外层一个点击事件,不就可以了。
qq_26763799 2016-06-16
  • 打赏
  • 举报
回复
popwindow要设置背景才能点击其他地方关闭,这个是个小坑,背景随你设置成什么颜色
ink_s 2016-06-16
  • 打赏
  • 举报
回复
要设置背景 没背景只能按返回键退出pWindow.setBackgroundDrawable(new BitmapDrawable());

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧