2010-08-30 1 views
1

Я ищу предложения о том, как добавить нужный переключатель ListView, который является «постоянным». Под этим я подразумеваю, что одна строка в ListView всегда подсвечивается; он должен двигаться вверх или вниз в ответ на любые нажатия на D-pad (т. е. как селектор по умолчанию), но также оставаться установленным/подсвеченным, если пользователь должен прокручивать ListView в любом направлении (т.е. он все еще подсвечивается, даже когда он выключен) ,Рекомендации для «постоянного» выбора в ListView

Я рассмотрел использование стандартного механизма селектора, но не смог заставить селектор оставаться на месте, если касался ListView (и, таким образом, прокручивался), поэтому мне кажется, что это не самый лучший вариант ? Возможно, есть <selector> «state_*», который я проигнорировал?

Другой вариант заключается в использовании обратного вызова onItemSelected(), но сначала это выглядит более запутанным?

Любые предложения/рекомендации/опыт с благодарностью принимаются.

Приветствие

Джеймс

ответ

0

Я ищу предложение о том, как идти о добавлении селектора ListView, который является «постоянным».

Пожалуйста, не делайте этого. В сенсорном режиме нет выбора, и это по дизайну. Как указано в «this article»: «Используйте соответствующую функцию, если вам нужен постоянный выбор (переключатель, флажок, режим выбора ListView и т. Д.). Не пытайтесь удерживать фокус или выбор в режиме касания».

+0

Thanks Mark. Обоснование «постоянного выбора» состоит в том, что у меня есть два представления, и каждый из них делает выбор в первом представлении «зеркальным» в ListView. В настоящее время я использую setSelectionFromTop(), чтобы привести элемент в начало списка. Это хорошо, но наличие дополнительной визуальной подсказки (то есть цвета) поможет пользователю определить, что только что произошло в ListView (особенно, поскольку последний элемент в ListView, очевидно, не может быть установлен в начало ListView). Итак, способ сделать это - оставить «выбор» и просто установить фон? – James

+0

@James: «выбор в первом представлении должен быть« зеркальным »в ListView». -- Зачем? «Итак, способ сделать это - оставить« выбор »и ​​просто установить фон?» - возиться с фоном несколько болезненно и противоречит истинному выбору. Если вам это действительно нужно, возможно, переключите значок между «View.VISIBLE» и «View.INVISIBLE», чтобы указать строку, которая обрабатывается в «View», или изменить цвет текста. Но, честно говоря, я не могу полностью понять интерфейс, в котором два места для выбора одного и того же объекта ('View' и' ListView') - это хорошее использование пространства экрана. – CommonsWare

+0

Да. Вот что я боялся об изменении фона. Я пойду с индикацией (значок/текст). Еще раз спасибо. – James

Смежные вопросы