So I have custom list item with buttons for a ListView. When pressed, the button display alternate drawable to show feedback to user. However when I click on the row, every
I found out that setting android:clickable="true"
to the parent view will prevent child views state to be changed.
See this answer.
im my opinion you need to disable the state from the parent as android:duplicateParentState="false"
add this to your Button
I have this problem too, I Google it and try it about 3 hours! now I found the solution. just add OnClickListener to child view. and even DO NOTHING in OnClick method. It works on 2.3 emulator and my nexus 5.
This makes my app work harder, but it solves the problem:
...
mImageIcon.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setBackgroundResource(R.drawable.my-background);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
/*
* You can use another background rather than 0.
*/
v.setBackgroundResource(0);
break;
}
return false;
}// onTouch()
});