Проведите пальцем по экрану для переключения вкладок на Android, например YouTube / Google Music apps

В своих последних версиях своих приложений Google реализовал довольно крутой способ перелистывания между вкладками вместо щелчка по заголовкам вкладок. Мне было интересно, есть ли у кого-нибудь более конкретные идеи о том, как это делается.

Вот некоторые мысли - не стесняйтесь критиковать:

Я изначально подумал, что это не стандартная TabActivity , в которой размещаются дочерние действия. На самом деле, я даже не думаю, что это обычная ActivityGroup . Строка вкладок прокручивается при перемещении, но не вызывает переключения активной вкладки.

Перелистывание основного содержимого вкладки демонстрирует интересное поведение. Я подозреваю, что к области основного содержимого прикреплен GestureListener. При перемещении вкладок становятся видимыми строки из соседней вкладки. Похоже, это наводит на мысль, что это группа ListView с горизонтальной прокруткой. Это почти как горизонтально прокручиваемый HTML-код div, в котором весь контент уже существует, но становится видимым при смахивании. Я не совсем уверен, как обрабатывается рендеринг строк (традиционно строки создаются и отображаются при прокрутке списка вверх / вниз, а не влево / вправо). Так что, может быть, это тоже реализация ListView ? Если прокрутка не выполняется из стороны в сторону, она ведет себя так, как и следовало ожидать от обычного ListView , включая быструю прокрутку и эффект свечения при опускании.

Ряд вкладок, вероятно, представляет собой ScrollView , о чем свидетельствует эффект свечения при перемещении к краям. Строка содержимого вкладки - нет.

Я пытаюсь построить мысленную модель различных частей, которые составляют этот действительно изящный элемент пользовательского интерфейса. Приветствуются любые идеи.

5
задан psychotik 15 June 2011 в 06:54
поделиться