首页 > 代码库 > popupwindow放置listview,并且使listview可以响应点击事件
popupwindow放置listview,并且使listview可以响应点击事件
最近在模仿微信的选择头像的功能,就是一个Popwindow里面是一个ListView,ListView是所有相册,用户点击里面的相册,那么那个相片展示的页面就会显示你选择的相册的相片
。刚开始发现里面的ListView不能获取点击事件,插入如下代码解决
popWinPlaylist.setFocusable(true); popWinPlaylist.update();
随后发现popwindown以外的地方不能响应点击事件,其实你可以通过pw(PopupWindow对象).getContextView()拿到他的父视图。然后通过给父视图注册事件 让pw失去焦点 。
//做一个不在焦点外的处理事件监听 parameterPop.getContentView().setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub parameterPop.setFocusable(false); parameterPop.dismiss(); return true; } }); }
又发现一个问题,返回键不能响应点击事件,相信看了上面代码的应该会明白。要响应谁就交给谁。setFocusable(true)此时已经让Pw获取了焦点。解决办法:因为Pw里放置了ListView。可以利用setOnKeyListener对Pw里的ListView 设置监听代码如下:
parameter_list.setOnKeyListener(new OnKeyListener(){ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub parameterPop.dismiss(); return true; } });
popupwindow放置listview,并且使listview可以响应点击事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。