popupWindow 的监听问题

M_GSir 2016-04-12 03:48:17
void show()
{
LayoutInflater layoutInflater=getLayoutInflater();
View view =layoutInflater.inflate(R.layout.main,null);
GridView gridview=(GridView)view.findViewById(R.id.grid);
gridview.setAdapter(new Adapter(this));
popupWindow=new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);

popupWindow.setFocusable(true);
popupWindow.setTouchable(true);
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
ClosePop();
}
});



// 实例化一个ColorDrawable颜色为半透明
//ColorDrawable dw = new ColorDrawable(0xb0000000);
ColorDrawable dw=new ColorDrawable(0xffffffff);
popupWindow.setBackgroundDrawable(dw);


// 设置popWindow的显示和消失动画
popupWindow.setAnimationStyle(R.style.mypopwindow_anim_style);
// 在底部显示
popupWindow.showAtLocation( ScrollingActivity.this.findViewById(R.id.od),
Gravity.BOTTOM, 0, 0);
WindowManager.LayoutParams layoutParams=this.getWindow().getAttributes();
layoutParams.alpha=0.5f;
this.getWindow().setAttributes(layoutParams);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("123456");
ClosePop();
return false;
}
});
}
...全文
298 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
silenccce 2016-04-13
  • 打赏
  • 举报
回复
因为你的点击事件被它内部的GridView拦截了,所以外层的View无法响应事件。 楼主是不是想用GridView实现菜单,然后点击菜单项,关闭弹窗。如果这样的话,你可以监听GridView的onItemClick事件,然后在这个事件中关闭弹窗。
panzhiling 2016-04-13
  • 打赏
  • 举报
回复
你是想点击popwindows外面,然后dismiss吧?
M_GSir 2016-04-12
  • 打赏
  • 举报
回复
求大神帮忙 为什么view的监听是无效的??????

80,490

社区成员

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

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