如果在ListView项中有Button,ImageButton或添加了点击事件的控件等,那么项的点击事件就会无法触发
为了触发项的点击事件首先在项的布局文件中添加属性
android:descendantFocusability="blocksDescendants"
效果就是给所有子控件加了属性
android:focusable="false"
这样项的点击事件就能触发了
如果在子项的子控件设置有Selector,点击子项任意区域子控件的Selector都会被触发
解决方法就是子控件不使用Selector,而使用OnTouchListener来替代Selector
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//按下效果
} else if (event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_UP) {
//弹起效果
}
对于这种效果暂时只找到这种解决方法,如果有更好的解决方法请告诉我
================================================================
给button等控件设置 android:duplicateParentState="false"即可(
方法无效)
================================================================
如果不想使用Touch事件,那就只能给item里面设置点击事件