Представление заголовка Android ListView не может реагировать на событие нажатия, иногда, когда представление заголовка фокусируется в режиме клавиатуры, затем щелкните его в режиме касания - PullRequest
1 голос
/ 20 октября 2011

Вид заголовка Android ListView не может реагировать на событие нажатия, иногда, когда вид заголовка фокусируется в режиме клавиатуры, затем щелкает его в сенсорном режиме. Шаги репо по этому сценарию: 1. прокрутите список до тех пор, пока заголовок не исчезнет из поля зрения 2. сделать заголовок получить фокус в режиме клавиатуры 3. нажмите на заголовок в сенсорном режиме тогда просмотр заголовка может отвечать только на событие касания и не может реагировать на событие нажатия. Но на некоторых устройствах такой сценарий невозможен.

Ожидайте: заголовок может отвечать на событие клика в любое время, когда мы его видим

Версия Android: 2.2 / 2.3 Устройство: некоторые устройства с трекболом или жесткой клавиатурой

Мне нужно, чтобы заголовок мог ответить на событие клика в любое время. Так кто-то может выяснить причину этого сценария? и дать мне несколько советов, чтобы это исправить? Любой совет приветствуется, спасибо заранее.

1 Ответ

0 голосов
/ 07 февраля 2013

У меня была такая же проблема. Я не знаю, почему это странно, но я смог решить проблему, не используя addHeaderView().

Просто добавьте заголовок из адаптера как часть строки: mListView.setItemsCanFocus(true);

@Override
public int getItemViewType(int position) {
    return position == 0 ? 0 : 1;
}

@Override
public int getViewTypeCount() {
    return 2;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;

    if (v == null) {
        if (getItemViewType(position) == 0) {
            LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.music_list_header_view_2, null);
        } else {
            LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.music_favorite_list_row, null);
        }
    }
}

надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...