Android onClickEvent в адаптере

у меня есть GridView с каждой сеткой как простой TextView. мне нужна полоса прокрутки для TextView внутри каждой сетки в GridView. но включение полосы прокрутки отключает мой onClickListener для моего представления сетки. я пробовал использовать ScrollView, инкапсулирующий TextView, а также использовать встроенную полосу прокрутки textview. в любом случае я теряю получение событий onClick для моего GridView. Я слышал о проблеме использования дочерних представлений, которые можно щелкнуть или сфокусировать внутри представления адаптера, и отключить прослушиватель onclick. если вы попытались установить свойство Scrollview кликабельного и фокусируемого на false и все же не смогли решить проблему.

Я хочу, чтобы при щелчке по сетке вызывалось событие onClick, зарегистрированное для GridView, и при перетаскивании гирда (предпочтительно в вертикальном направлении) текстовое представление должно прокручиваться.

заранее спасибо


person rogue-one    schedule 12.08.2011    source источник
comment
Что должно произойти, когда полоса прокрутки gridview включена. Событие прокрутки, которое вы хотите в текстовом представлении каждого элемента, будет конфликтовать с представлением сетки. Вы можете использовать любой из двух для прокрутки.   -  person Ronnie    schedule 12.08.2011
comment
я имею в виду, что не весь текст будет прокручиваться. только те, содержимое которых превышает размер сетки. поэтому я считаю, что прокрутка textview будет иметь более высокий приоритет, когда прокручиваемая область textview и gridview перекрывается.   -  person rogue-one    schedule 14.08.2011


Ответы (1)


Небольшая модификация вашей идеи может сделать ее реализуемой.
Изначально оставьте все прокрутки текстовых представлений отключенными. Когда на нем происходит касание (это будет onItemClick gridview), включите прокручиваемое состояние текстового представления и установите для него onclicklistener. Теперь его можно прокручивать, а также нажимать. Вы должны поддерживать ссылку члена на текущий прокручиваемый texview. Когда касание происходит на другом элементе, установите текущее текстовое представление элементов как недоступное для щелчка и установите нажатый элемент как текущий прокручиваемый с помощью прослушивателя кликов.
Представление сетки по-прежнему можно прокручивать, перетаскивая любую область, кроме текущего прокручиваемого текстового представления.
Просто предложение, если вы можете его использовать.

person Ronnie    schedule 12.08.2011
comment
спасибо за идею .. но полосы прокрутки просто отключают мои события onItemClicks и, следовательно, обработчики событий не вызываются. поэтому моя проблема заключается в том, что события onItemClick не запускаются при наличии фокусируемых и интерактивных представлений, т.е. ScrollView или TextView с полосами прокрутки... - person rogue-one; 14.08.2011