自定义Behavior实现底部View的平移动画
最新在研究一些5.0的新控件,看着新控件的酷炫效果真是手痒痒恨不得一下子全吃肚子里了,奈何是个小菜,只得慢慢来了。写这个全当是做做笔记记录一下吧,方便以后使用。
说道5.0.我觉得不能不提CoordinatorLayout,通过实现NestedScrollingParent接口,配合子View实现NestedScrollingChild接口可以实现各种酷炫效果,比如说今天我们说的Toolbar的伸缩效果,我们都知道CoordinatorLayout嵌套Toolbar之后给Toolbar设置app:layout_scrollFlags=”scroll|enterAlways”,并给可以滚动的视图设置app:layout_behavior=”@string/appbar_scrolling_view_behavior”之后,Toolbar在视图滚动的时候有一个上下平移动画,如下图
现在我们的App一般都有底部导航的,既然头部可以伸缩,那如何给我们底部布局也加上一个伸缩的效果呢(平移动画),这就需要我们自定义behavior了。如图,图上底部布局是一个线性布局,需求是实现列表RecyclerView滑动的时候底部布局自动隐藏和显示
主界面xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mteeyu.behaviordemo.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/id_toolbar"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:layout_height="wrap_content"
android:paddingTop="@dimen/toolbar_padding_top"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:layout_scrollFlags="scroll|enterAlways"
/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
android:background="?attr/colorPrimary"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_behavior="com.mteeyu.behaviordemo.FootBehavior"
>
<