【android】ListView的item事件和item里面的view的事件同时存在
2012-08-29 17:01
459 查看
碰到个问题:
ListView的onItemClickListener监听事件,若item里面有button也监听事件,则不能同时监听事件,会有个没反应。
解决方案:
解决方案的本质就是不用onItemClickListener的事件,转移到item里面某个View的事件
方案1、获取item最外层的view
方案2、item底层加一层View覆盖
副作用:View上再有其他的View会监听不到事件。(未测试)
会有副作用
方案3、这篇文章好像可以解决同时监听的问题
/article/3874828.html
另外,通过这种方法不可以将ListView和ImageView同时添加了监听,通过网上搜索,原来是没有在xml中添加部分属性,在list的配置xml的根节点添加属性android:descendantFocusability="blocksDescendants",还有就是在要添加事件的控件上添加android:focusable="false",上边的代码中我已经添加过了。
这些就跟View和ListView的焦点问题相关了:
http://blog.sina.com.cn/s/blog_a855dc2c01014ith.html
方案4、(经测试)完全解决
意思跟上面的差不多,也是在最下面用一个View监听事件。item里面使用FrameLayout,完全解决。
上层的View若写了监听器,监听到事件时就把事件交个它处理了,不会继续往下传递;
若上层的View没有监听器,则事件会往下传递,直到有View监听到并处理这个事件,或到最底层结束。
这就不会出现上层的View影响下层的View监听事件
ListView的onItemClickListener监听事件,若item里面有button也监听事件,则不能同时监听事件,会有个没反应。
解决方案:
解决方案的本质就是不用onItemClickListener的事件,转移到item里面某个View的事件
方案1、获取item最外层的view
这时候如果你给listView设置listView.setOnItemLongClickListener();事件后,发现只有长按editText才能触发item的事件,所有获取焦点失去焦点转移焦点的方法都试过了。都没有方法解决:最简单的解决方法是: 在getView方法中获取item的最外层布局:viewHolder.ll_item = (LinearLayout) convertView.findViewById(R.id.ll_item); 然后在getView方法内给这个布局设置事件: viewHolder.ll_item.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { }); 这样既可以点击editText输入文本,也可以点击item来触发自己需要的事件!
方案2、item底层加一层View覆盖
副作用:View上再有其他的View会监听不到事件。(未测试)
会有副作用
方案3、这篇文章好像可以解决同时监听的问题
/article/3874828.html
另外,通过这种方法不可以将ListView和ImageView同时添加了监听,通过网上搜索,原来是没有在xml中添加部分属性,在list的配置xml的根节点添加属性android:descendantFocusability="blocksDescendants",还有就是在要添加事件的控件上添加android:focusable="false",上边的代码中我已经添加过了。
这些就跟View和ListView的焦点问题相关了:
http://blog.sina.com.cn/s/blog_a855dc2c01014ith.html
方案4、(经测试)完全解决
意思跟上面的差不多,也是在最下面用一个View监听事件。item里面使用FrameLayout,完全解决。
上层的View若写了监听器,监听到事件时就把事件交个它处理了,不会继续往下传递;
若上层的View没有监听器,则事件会往下传递,直到有View监听到并处理这个事件,或到最底层结束。
这就不会出现上层的View影响下层的View监听事件
相关文章推荐
- android listview的item里面的imageview的点击事件
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- Android中ListView点击和ListView的item里面的Button或ImageView不能同时生效问题的解决
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
- Android下listview每个Item中包含有按钮,为什么在点击某一行按钮的时候,同时有多行button触发了响应事件?
- Android开发中自定义ListView中存在ImageButton不响应ListItemClick单击事件详细d飞解决办法
- android之ListView重写item里面的事件
- Android基础:listview的item点击事件会使里面的Button也出现按压的效果
- Android RecyclerView ListView 获取不到Item点击事件
- Android-ListView所包含的item里面的控件点击事件
- Android UI设计--ListView Item的OnItemLongClickListener同时监听两种事件
- Android listview的item中button的点击事件 item和button 可同时点击
- Android基础:listview的item点击事件会使里面的Button也出现按压的效果
- Android ListView的Item中含有EditText,获取EditText里面的值并且刷新ListView值不改变
- android 往dialog中加入listview,并实现listview中item的点击事件
- listview里面的item的多种view模式(多种类型的item)