3

次のようなレイアウトがあります。

<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 が拡張されないようにするにはどうすればよいですか? 私はそれを閉じる必要があり、ユーザーが何をしてもリセットするまで強制的に閉じたままにします。

4

1 に答える 1