Создайте более чистый пользовательский интерфейс в 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!