Android Material Design之AppBarLayout:可以解决RecyclerView遮挡Toolbar

假如,当RecyclerView遮挡屏幕顶部的Toolbar时,解决方法:

①一般解决就是使用偏移,将RecyclerView向下偏移一个Toolbar高度即可。

②不过,Design support 提供的一个控件:AppBarLayout 也可以解决此问题。而且还可以实现ToolBar需要时就出现,不需要时就隐藏(因为AppBarLayout 内部做了很多滚动事件的封装)。

AppBarLayout ,实际上是一个垂直方向的LinearLayout,不过AppBarLayout 内部做了很多滚动事件的封装,并有Material Design风格。

AppBarLayout使用很简单:

① 将Toolbar嵌套在AppBarLayout布局之中:如:

 <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FFF">

        <Toolbar
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            tools:targetApi="lollipop">
            
        </Toolbar>
</android.support.design.widget.AppBarLayout>

② 给RecyclerView指定布局行为(layout_behavior)

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
        
    </android.support.v7.widget.RecyclerView>

这样,RecyclerView就不会遮挡住Toolbar了。

Toolbar需要就出现,不需要就隐藏实现:

RecyclerView滚动时候,此滚动事件会通知给AppBarLayout,可以为Toolbar设置app:layout_scrollFlags="scroll|enterAlways|snap">

这样,Toolbar需要就出现,不需要就影藏就实现了,scroll代表RecyclerView向上滚动时隐藏Toolbar,enterAlways代表RecyclerView向下滚动时重新显示Toolbar,snap代表Toolbar还没完全隐藏或显示时,根据RecyclerView滚动距离自动显示/或隐藏Toolbar。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值