LinearLayout OnClickListener не отвечает - PullRequest
       0

LinearLayout OnClickListener не отвечает

3 голосов
/ 01 сентября 2010

Я создаю собственный виджет, расширяя LinearLayout.Одним из элементов моего пользовательского виджета является линейный макет, накачанный из другого макета.Когда я устанавливаю OnClickListener, он не отвечает.Не могли бы вы посоветовать?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 сентября 2015

Вместо использования 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 
}
1 голос
/ 30 апреля 2011

Вы объявили, что LinearLayout кликабелен?

Вы можете сделать это либо в XML:

android: clickable = "true"

, либо в коде Java:

myLinearLayout.setClickable (true);

Также смотрите другой поток StackOverflow по этому вопросу:

onClickListener для LinearLayout

...