Фон
Недавно Google опубликовала новую версию Android, в которой есть контактное приложение, которое выглядит так:
Проблема
Мне нужно подражать этому списку, но я не могу понять, как это сделать.
Это состоит из 3 основных компонентов:
-
титульные листы, которые остаются до тех пор, пока верхний контакт имеет имя, которое начинается с этой буквы.
-
Круговые фотографии или круг + письмо (для контактов, у которых нет фотографий)
-
PagerTitleStrip, который имеет равномерное расстояние между элементами и пытается показать их все на экране (или позволяет прокручивать, если необходимо).
Что я нашел
-
Существует множество сторонних библиотек, но они обрабатывают stickey-заголовки, которые являются частью элементов самого списка. Они не имеют названия слева, но в верхней части элементов.
Здесь левая сторона движется иначе, чем правая. Он может придерживаться, и если нет необходимости вставлять (потому что в этом разделе есть один элемент, например), он прокручивается.
-
Я заметил, что для круговых фотографий я могу использовать новый класс (?), называемый RoundedBitmapDrawableFactory "(который создает" RoundedBitmapDrawable"). Это, вероятно, позволит мне красиво поставить фотографию в круглую форму. Тем не менее, он не будет работать для писем (используется для контактов, у которых нет фотографии), но я думаю, что могу поместить textView сверху и установить фон в цвет.
Кроме того, я заметил, что для того, чтобы хорошо использовать RoundedBitmapDrawable (чтобы сделать его действительно круговым), я должен предоставить ему растровое изображение с квадратным размером. В противном случае он будет иметь странную форму.
-
Я попытался использовать setTextSpacing", чтобы свести к минимуму пространство между элементами, но он, похоже, не работает. Я также не мог найти способ подстроить/настроить PagerTitleStrip как в приложении для контактов.
Я также пробовал использовать PagerTabStrip", но это также не помогло.
Вопрос
Как вы можете подражать тому, как Google внедрил этот экран?
Более конкретно:
-
Как я могу заставить левую сторону вести себя как в приложении контактов?
-
Это лучший способ реализовать круговую фотографию? Действительно ли мне нужно обрезать растровое изображение на квадрат перед использованием специальной возможности рисования? Существуют ли какие-либо рекомендации по дизайну, для которых используются цвета? Есть ли более официальный способ использования ячейки круг-текст?
-
Как вы создаете стиль PagerTitleStrip, чтобы иметь тот же внешний вид и чувствовать себя как в приложении контактов?
Проект Github
EDIT: для # 1 и # 2 я сделал проект в Github, здесь. К сожалению, я также нашел важную ошибку, поэтому я также опубликовал об этом здесь.