Создайте более чистый пользовательский интерфейс в Android
Это должна быть короткая, приятная, простая и содержательная статья.
Будучи разработчиком как для Android, так и для iOS, я обнаружил, что хочу делать в iOS то, что я могу делать в Android, и наоборот. Одна из таких вещей заключалась в том, что я отчаянно хотел создать способ получить красивый prefersBigTitles
атрибут iOS в Android.
Если вы не знакомы, атрибут prefersBigTitles
в iOS создает чистый заголовок с выравниванием по левому краю в контроллере навигации, который при прокрутке плавно переходит в панель заголовка.
Вот GIF-изображение, как это выглядит в iOS:
Я не нашел простого способа подражать этому в Android. Затем я начал экспериментировать с раскладкой Координатора и нашел решение:
Но как это работает?
Вы можете подумать: «Отличный соус, у меня есть код, который поможет мне делать то, что я хочу. Но как это на самом деле работает? »
Я знал, что для достижения желаемой странной функциональности мне понадобится макет координатора на верхнем уровне.
Практически каждый раз, когда мне нужно иметь интересное поведение в макетах на основе взаимодействия с пользователем, я смотрю на макет Координатора. Если вам это нужно, вы можете прочитать об этом в документации.
Настоящее волшебство заключается в создании панели приложения со сворачивающейся оберткой вокруг стандартной панели инструментов. Эти комбинации обеспечивают правильное позиционирование и позволяют специфицировать различное поведение в событиях прокрутки с помощью:
app:layout_scrollFlags=”scroll|exitUntilCollapsed|snap”
Возможность управлять панелью приложения в случае прокрутки (включая стили текста) позволила мне имитировать поведение iOS prefersBigTitles
.
Я использовал этот код в задаче кодирования, чтобы присоединиться к Takl On-Demand Services в качестве разработчика Android. Этот код можно найти на GitHub.
Вот как это выяснилось:
Надеюсь, это поможет вам создавать аккуратные приложения для Android с теплой прошивкой для iOS!