Автоматическое скрытие панели инструментов при прокрутке, когда между ними есть несколько других слоев представлений - PullRequest
0 голосов
/ 10 мая 2018

Мне бы хотелось, чтобы Toolbar моей активности плавно прокручивался по мере роста данного прокрутки, а затем плавно прокручивался назад, если пользователь прокручивал вниз. То есть основное scroll|enterAlways поведение, например, это ответ.

Однако у моего макета есть несколько слоев между CoordinatorLayout, содержащим Toolbar, и ScrollView, который должен управлять всем. В отличие от этого ответа , я хотел бы иметь следующую раскладку:

CoordinatorLayout
  AppBarLayout
    Toolbar
  LinearLayout [vertical]
    LinearLayout [vertical]
      ImageView
      ScrollView

Два, казалось бы, избыточные LinearLayout предназначены для управления цветом фона; и идея с ImageView и ScrollView заключается в том, что мой пользовательский интерфейс должен выглядеть следующим образом:

+------------+
|TOOLBAR    =|
+------------+
|            |
|   IMAGE    |
|            |
|111111111111| 
|222222222222|
|333333333333|
|444444444444|
+------------+

, который затем следует прокрутить до

+TOOLBAR----=+
+------------+
|            |
|   IMAGE    |
|            |
|111111111111| 
|222222222222|
|333333333333|
|444444444444|
|555555555555|
+------------+

и далее

+------------+
|            |
|   IMAGE    |
|            |
|111111111111| 
|222222222222|
|333333333333|
|444444444444|
|555555555555|
|666666666666|
+------------+

, а затем

+------------+
|            |
|   IMAGE    |
|            |
|222222222222|
|333333333333|
|444444444444|
|555555555555|
|666666666666|
|777777777777| 
+------------+

(с числами, представляющими вещи в ScrollView).

вышеописанное поведение я смог получить, просто установив app:layout_scrollFlags="scroll|enterAlways" на Toolbar в стандартной комплектации. Однако, если я затем начну перетаскивать ScrollView, Toolbar не вернется. На самом деле, я не нашел способа вернуть Toolbar после его прокрутки.

1 Ответ

0 голосов
/ 11 мая 2018

Оказывается, мне нужно использовать NestedScrollView, поскольку, в отличие от предложенного мне названия, оно предназначено не только для вложения ScrollView s в другие ScrollView s, но и для вложенияScrollView внутри других контейнеров:

NestedScrollView аналогично ScrollView, но поддерживает как вложенный прокручиваемый родитель и потомок в новых и старых версиях Android.

...