Android开发-DesignDemo-AndroidStudio(十一)FloatingActionButton(3)

来源:互联网 发布:河北seo按效果付费 编辑:程序博客网 时间:2024/06/11 02:40

FloatingActionButton跟随list滚动隐藏消失。


需要重写MyBehavior.java,将其继承FloatingActionButton.Behavior。


如果看了之前Demo的同学,请在layout里去掉textView引用com包实现跟随list滚动隐藏消失的效果的代码,否则,会报错。


如果同时想实现,FloatingActionButton和textView 跟随list滚动隐藏消失,可以写2个类,分别继承相对的Behavior


项目压缩包下载地址:http://download.csdn.net/detail/iwanghang/9674829



MyBehavior.java:

package com.iwanghang.coordinatordemo;import android.content.Context;import android.support.design.widget.CoordinatorLayout;import android.support.design.widget.FloatingActionButton;import android.support.v4.view.ViewCompat;import android.util.AttributeSet;import android.view.View;/** * 重写Behavior的方法 *///public class MyBehavior extends CoordinatorLayout.Behavior {public class MyBehavior extends FloatingActionButton.Behavior {    /**     * 实现下面3行方法 则可以通过     * app:layout_behavior="com.iwanghang.coordinatordemo.MyBehavior"     * 来实现 MyBehavior     */    public MyBehavior(Context context, AttributeSet attrs) {        //super(context,attrs);        super();    }    public MyBehavior() {    }    // Behavior 开始滚动    @Override    public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {        return true; // 为true,表示我们关心这个事件    }    // Behavior 正在滚动    @Override    public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dx, int dy, int[] consumed) {        super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed);        if (dy < 0){ // 向上滚动            //ViewCompat.animate(child).scaleX(1).scaleY(1).start(); // 显示控件            child.show();        }else { // 向下滚动            //ViewCompat.animate(child).scaleX(0).scaleY(0).start(); // 隐藏控件            child.hide();        }    }}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.iwanghang.coordinatordemo.MainActivity">    <!--layout_scrollFlags enterAlwaysCollapsed 第一条上拉至第一条数据才出现ActionBar-->    <!--layout_scrollFlags enterAlways 只要上拉就出现ActionBar-->    <!--contentScrim 遮蔽颜色-->    <!--layout_collapseMode parallax 视差-->    <android.support.design.widget.AppBarLayout        android:id="@+id/appbar"        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:theme="@style/Widget.AppCompat.ActionBar">        <android.support.design.widget.CollapsingToolbarLayout            app:layout_scrollFlags="scroll|exitUntilCollapsed"            app:contentScrim="@color/colorAccent"            android:layout_width="match_parent"            android:layout_height="wrap_content">            <ImageView                app:layout_collapseMode="parallax"                android:layout_width="match_parent"                android:layout_height="200dp"                android:src="@mipmap/ic_launcher"/>            <android.support.v7.widget.Toolbar                android:id="@+id/toolbar"                android:layout_width="match_parent"                android:layout_height="?actionBarSize" />        </android.support.design.widget.CollapsingToolbarLayout>        <!--<TextView-->            <!--android:text="悬停条目"-->            <!--android:textColor="#ffffff"-->            <!--android:layout_width="match_parent"-->            <!--android:layout_height="wrap_content" />-->    </android.support.design.widget.AppBarLayout>    <android.support.v7.widget.RecyclerView        android:id="@+id/recycler_1"        app:layout_behavior="@string/appbar_scrolling_view_behavior"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layoutManager="LinearLayoutManager" />    <!--<TextView-->        <!--android:clickable="true"-->        <!--android:id="@+id/textView_1"-->        <!--android:layout_width="wrap_content"-->        <!--android:layout_height="wrap_content"-->        <!--android:layout_marginTop="100dp"-->        <!--android:layout_marginLeft="100dp"-->        <!--android:textSize="20sp"-->        <!--android:background="#f00"-->        <!--android:text="textView_1\nlist上下滚动显示隐藏\n通过setBehavior实现" />-->    <TextView        android:clickable="true"        android:id="@+id/textView_2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:textSize="20sp"        android:background="#f00"        android:text="textView_2\n向右滑动" />    <!--<TextView-->        <!--app:layout_behavior="com.iwanghang.coordinatordemo.MyBehavior"-->        <!--android:clickable="true"-->        <!--android:id="@+id/textView_3"-->        <!--android:layout_width="wrap_content"-->        <!--android:layout_height="wrap_content"-->        <!--android:layout_gravity="center|bottom"-->        <!--android:textSize="20sp"-->        <!--android:background="#f00"-->        <!--android:text="textView_3\nlist上下滚动显示隐藏\n指定layout_behavior实现" />-->    <!--右下角 FloatingActionButton-->    <android.support.design.widget.FloatingActionButton        app:layout_behavior="com.iwanghang.coordinatordemo.MyBehavior"        android:id="@+id/fab"        android:layout_gravity="end|bottom"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@mipmap/ic_launcher" />    <!--左下角 ImageButton-->    <ImageButton        android:id="@+id/imageBtn"        android:layout_gravity="start|bottom"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@mipmap/ic_launcher" /></android.support.design.widget.CoordinatorLayout>

项目压缩包下载地址:http://download.csdn.net/detail/iwanghang/9674829

0 0