LinearLayout заставляет детей менять состояние селектора на фокусе - PullRequest
0 голосов
/ 04 января 2012

У меня есть горизонтальный макет, в котором отправляются некоторые вертикальные макеты.

Я хочу поймать onFocusEvent моих вертикальных макетов, поэтому, когда один из них получает фокус, изображение и текстовое представление, содержащиеся в вертикальном макете, изменяют состояния селектора.

Я пытался проверить это с перехватом события OnFocusChange, например:

LLContact.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View arg0, boolean hasFocus) {
        // TODO Auto-generated method stub

        if (hasFocus == true) {

            // Has Focus

        } else {

            // Loses focus

        }

        }
    });

Но событие никогда не запускается.

Я установил для моего линейного макета значение «FocusableInTouchMode» как истинное и «Фокусируемое» как истинное, но, похоже, событие никогда не происходит ... У вас есть какие-либо подсказки?

Заранее спасибо.

1 Ответ

1 голос
/ 04 января 2012

Вам необходимо установить следующие свойства потомков менеджера textview и imageview: focusable=false; clickable=false; focusable in touch mode=false;

и установите для этих свойств макета значение true;

...