Я думаю, что вам нужно сочетание подхода «статический текст» с «заголовками разделов» в ScrollView: список должен содержать отключенные / не нажимаемые элементы с буквами «A», «B» и т. Д. Когдазаголовок раздела прокручивается над верхней частью представления, изменяя содержимое статического TextView над ScrollView на содержимое заголовка.То есть, когда элемент заголовка «B» прокручивается вне поля зрения, TextView теперь содержит «B».
Конечно, трудная часть будет обнаруживать, когда «заголовок раздела» прокручивается сверху или приходитпри прокрутке в противоположном направлении.
Для бонусных точек используйте анимацию «push up» в TextView при изменении содержимого, чтобы он выглядел так, как будто элемент списка перемещается в TextView.(Пример этой анимации в приложении API Demos в SDK можно найти в "... \ view \ Animation2.java").
ОБНОВЛЕНИЕ: после дальнейшего просмотра ... вот некоторые классы и т. Д.Связанный с выполнением этой работы (это было забавное упражнение для меня!):
android.widget.AbsListView.OnScrollListener
интерфейс, чтобы увидеть, как обнаружить прокручивающиеся события.Вам нужно будет отслеживать предыдущую позицию «сверху обзора», чтобы определить, в каком направлении вы прокручиваете (чтобы выбрать анимацию скольжения или опускания).
Анимация, которую я перечислил выше, не совсемчто вы хотите - лучше взглянуть на класс android.widget.TextSwitcher
и файлы push*.xml
в каталоге SDK / android-X / data / res / anim.
Вам наверняка понадобится собственный адаптерподкласс для добавления видов в список: getView(...)
может по-разному задавать свойства представления строки (bkgnd, стиль текста и т. д.), если строка является заголовком раздела или нет.Повторно используйте этот код в своей фабрике представлений TextSwitcher, чтобы заполнить статический TextView / Switcher над списком.
Веселитесь ...!