AS(AndroidStudio)的ListView的Item(每一项)点击没有反应
2018-03-09 19:11
711 查看
虽然ListView已经完全被RecyclerView所取代,但是在学习AS的过程中,还是会用到。当添加了Button或Imagebutton的点击以后,就会出现点击ListView的Item无效的现象(不会出现安卓5.0以后自带的效果:点击Item变灰),自然setOnItemClickLisentner也就无效了。下面分享一篇解决此问题的文章,亲试有效。
当同时设置了Button的onClick及ListView的onItemClickListener时,ListView的onItemClickListener会失去作用,即ListView不响应Item的点击事件。
出现这个问题的原因是:
ListView的Item能被选中的原因是它能获取Focus,而自定义的Item中有Button或者ImageButton等自控件时,子控件会获取默认Focus,这样Item就获取不到Focus,自然也无法相应点击事件了。
解决方法很简单:在Item的布局的根Layout上加上:
即可,可参照如下代码:
但是当这时,会出现另外一个问题,当点击每一个Item时(不是点击Button),Item中的Button也会呈现按下的状态。解决这个问题的方法也很简单,重写你所需的Button中的setPressed方法即可:
文章连接:https://www.cnblogs.com/zsw-1993/p/4879134.html (如有侵权可私信我来删除)
有时,为了实现某种功能,在Android程序中会考虑在ListView的每一个Item中添加一个Button(或ImageButton等)。
但是,这样会出现一个问题:当同时设置了Button的onClick及ListView的onItemClickListener时,ListView的onItemClickListener会失去作用,即ListView不响应Item的点击事件。
出现这个问题的原因是:
ListView的Item能被选中的原因是它能获取Focus,而自定义的Item中有Button或者ImageButton等自控件时,子控件会获取默认Focus,这样Item就获取不到Focus,自然也无法相应点击事件了。
解决方法很简单:在Item的布局的根Layout上加上:
1 | android:descendantFocusability="blocksDescendants" |
12 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
12 | public class DXCustomButton extends Button { public DXCustomButton(Context context) { super(context); } public DXCustomButton(Context context, AttributeSet attrs) { super(context, attrs); } public DXCustomButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void setPressed(boolean pressed) { if (pressed && ((View) getParent()).isPressed()) { return; } super.setPressed(pressed); } } |
相关文章推荐
- 解决listview中item中点击没有的反应
- Android—ListView点击某一项item无反应解决办法
- Android中ListView的item点击没有反应的解决方法
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法
- ListView点击没有反应,(其每一项有button或checkbox子控件的时候),解决。。
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法
- Cocos2dx Listview 点击item没有反应的bug
- Android ListView的item点击没有反应
- mp3播放器 遍历本地音乐显示在listview上,点击每一项item并传送音乐地址
- Android ListView 点击没有反应
- ListView的item点击事件失效,没有响应。
- ListView的item点击没反应--android:descendantFocusability用法简析
- android 点击listView没有反应
- Fragment里面的ListView的item点击没反应
- Fragment里面的ListView的item点击没反应
- 解决listview的item点击无反应问题
- android listview ,recycleView item没有点击效果
- 点击ListView或GridView的item无反应问题
- 【完美解决】Android ListView item 点击没有响应的问题
- android listview点击后没有反应原因分析