Как можно предотвратить расширение AppBarLayout?


У меня есть макет, который выглядит примерно так:

<FrameLayout>
    <Scrollview (empty view, set GONE)>
    <LinearLayout (loading screen, set GONE)>
    <CoordinatorLayout>
         <AppBarLayout>
             <RelativeLayout scroll|enterAlways|enterAlwaysCollapsed>
         </AppBarLayout>
         <RecyclerView with layout_behavior set>
         <NestedScrollView (variation of empty layout, set GONE)>
     </CoordinatorLayout>
</FrameLayout>

В AppBarLayout есть горизонтальный RecyclerView с ячейками, затем ниже основного RecyclerView содержит другой вид ячейки и прокручивается вертикально. Это отлично работает при прокрутке-AppBarLayout появляется и исчезает идеально.

Проблема возникает при поиске и ограничении результатов в двух RecyclerViews. Когда любой RecyclerView пуст, он должен исчезнуть - и так, когда верхняя горизонтальная RecyclerView пуст весь AppBarLayout должен исчезнуть.

Чтобы достичь этого, я вызываю AppBarLayout.setExpanded(false) - что работает. Однако после вызова этого, если я прокручиваю вертикальный RecyclerView вверх или вниз, AppBarLayout расширяется и показывает себя. Я также попытался сбросить LayoutParams scrollFlags, чтобы они были равны 0, что должно отключить прокрутку. AppBarLayout больше не прокручивается-но он по-прежнему расширяется.

Как я могу полностью предотвратить расширение AppBarLayout? Я нужно закрыть его, и заставить его оставаться закрытым, пока я не сброшу его, независимо от того, что делает пользователь.

1 3

1 ответ:

В другом месте у меня был установлен прослушиватель прокрутки, чтобы расширить вид сверху. Это запускало расширение там, где оно не должно было быть.