次のようなレイアウトがあります。
<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 は完全に現れたり消えたりします。
問題は、2 つの RecyclerView で結果を検索して制限するときに発生します。いずれかの RecyclerView が空の場合、それは消えるはずです。したがって、上部の水平 RecyclerView が空の場合、AppBarLayout 全体が消えるはずです。
これを達成するために、私は電話AppBarLayout.setExpanded(false)
しています-これは機能しています。ただし、それを呼び出した後、垂直の RecyclerView を上下にスクロールすると、AppBarLayout が展開されて表示されます。また、LayoutParams scrollFlags を 0 になるようにリセットしてみました。これにより、スクロールが無効になります。AppBarLayout はスクロールしなくなりましたが、まだ拡大しています。
AppBarLayout が拡張されないようにするにはどうすればよいですか? 私はそれを閉じる必要があり、ユーザーが何をしてもリセットするまで強制的に閉じたままにします。