Я пытаюсь добиться аналогичного поведения Telegram на странице настроек, то есть есть CircleImage, который при прокрутке вверх идет слева от заголовка Topbar, а при прокрутке вниз идет в середину развернутого AppBarLayout .
Я основывал свою работу на этом примере:
https://github.com/saulmm/CoordinatorBehaviorExample
Но в этом случае исходный кодер дважды воссоздает верхнюю панель. Я не хочу этого делать, поведение верхней панели по умолчанию — это то, что мне нужно, а также я хочу воспользоваться меню гамбургеров и меню параметров, которые поставляются из коробки.
Это моя иерархия представлений:
DrawerLayout
|
|---CoordinatorLayout
|--AppBarLayout
| |-CollapsingToolbarLayout
| |-ImageView (backdrop image)
| |-Toolbar
|--NestedScrollView
|--ImageView (circleimage avatar)
Как видите, я не могу сделать макет панели инструментов родственным моему CircleImage, поэтому я не могу связать их вместе с помощью метода layoutDependsOn
. Я попытался выполнить привязку к AppBarLayout, взяв за основу код из репозитория github, но, честно говоря, я не могу понять, что происходит в исходном коде.
activity_scrolling
), а также включаемый файлcontent_scrolling
. 12.11.2016android:fitsSystemWindows="true"
и с тем, как с ним работают компоненты Material Design. IIRC, Android до Lollypop не может соблюдать этот параметр. Так что замеры немного не те. Вы увидите, что у меня естьmarginTop
, установленный дляCircleImageView
, который предполагает, чтоAppBarLayout
не отображается под строкой состояния, поэтому я думаю, что способ исправить это — добавить значение@dimen/circle_offset
к ресурсам, настроенным на 220dp до Lollypop и 220dp минус ‹высота строки состояния› для Lollypop и более поздних версий. 23.05.2018