Вместо использования setOnClickListener используйте setOnTouchListener
Этот код будет работать как событие onclick
YourLinearLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
boolean returnValue = true;
if(event.getAction()==MotionEvent.ACTION_UP){ //on touch release
returnValue = false; //prevent default action on release
//do something here
}
return returnValue;
}
});
А затем добавьте это в свой класс LinearLayout для перехвата дочерних событий касания
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true; //will prevent child touch events
}