Не удается щелкнуть элемент ListView после прокрутки

У меня есть ListView, где каждая строка обновляется в режиме реального времени. Во время загрузки файла в ListView вы можете видеть ход загрузки каждого файла (несколько файлов, поэтому ListView). И вы можете нажать на элемент ListView и сделать что-то с ходом загрузки.

Я использовал метод .notifyDataSetChanged(); адаптера для установки динамических данных. И все хорошо, но после прокрутки ListView я не могу нажать ни на один пункт. Если я не прокручиваю, я могу нажимать на элементы, которые я вижу, без прокрутки. Как я могу это исправить?


person ruslanys    schedule 10.10.2012    source источник
comment
как вы настраиваете свой setOnClickListener()?   -  person Bill Mote    schedule 10.10.2012
comment
конечно. Это работает, если я не прокручиваю список   -  person ruslanys    schedule 10.10.2012
comment
Что конкретно происходит, когда вы щелкаете элемент после прокрутки, ничего? и вы используете OnClickListener или OnItemClickListener?   -  person baTimá    schedule 10.10.2012
comment
Я не сказал, что вы сидите; Я сказал: «Как ты поживаешь...   -  person Bill Mote    schedule 10.10.2012
comment
@baTimá Я использую OnItemClickListener. И ничего не происходит.   -  person ruslanys    schedule 10.10.2012
comment
@BillMote обычно. listView.setOnItemClickListener (новый OnItemClickListener() {...});   -  person ruslanys    schedule 10.10.2012
comment
проверьте LogCat, чтобы увидеть, есть ли какие-то ошибки или нет?   -  person baTimá    schedule 10.10.2012
comment
@ruslanys Вот и весь список. Это то, что вы хотите, или вам нужны отдельные строки? Вот почему я спросил;) Вы можете установить OnClickListener() в адаптере getView(), и это сделает каждый элемент кликабельным.   -  person Bill Mote    schedule 11.10.2012


Ответы (1)


Попробуйте это - возможно, клики вашего элемента списка перехватываются (при условии прослушивания onitemclick)

listView.setOnScrollListener(new OnScrollListener() {
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            if ( scrollState == OnScrollListener.SCROLL_STATE_IDLE )
            {
              listView.invalidateViews();
            }

        }

        @Override
        public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {}
    });

Если это не работает, опубликуйте больше кода, чтобы мы могли понять, о чем вы спрашиваете.

person Vrashabh Irde    schedule 10.10.2012