Android CoordinatorLayout使用 标题由图片变纯色

效果图:

依赖:

compile 'com.android.support:design:23.3.0'

布局为下:


//CoordinatorLayout是新添加的一个增强型的FrameLayout,通过它可以实现很多东西:
//   例如:
//      1.界面向上滚动逐渐隐藏Toolbar;
//      2.在其中可以放置浮动的View,就像Floating Action Button。
.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    //AppBarLayout跟它的名字一样,把容器类的组件全部作为AppBar。
    //        将AppBarLayout放在CoordinatorLayout中,就可以实现滚动效果。
    //        本例中,TabLayout在界面滚动时,随着Toolbar的逐渐隐藏,将占据Toolbar的位置,
    //            达到节省屏幕空间,界面动画效果的目的。
    .support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="256dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:fitsSystemWindows="true">

        .support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:title="Coding"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp">

            "@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                android:src="@drawable/bj"
                app:layout_collapseMode="parallax"
                />

            //属性解析:
            // app:theme:指定Toolbar的样式,包括ActionbarToggle和popupMenu的指示图标颜色
            // app:popupTheme:指定popupMenu溢出后的样式
            // app:title:    指定Toolbar中主Title的内容
            // app:layout_scrollFlags的意思是:

            设置的layout_scrollFlags有如下几种选项:
                scroll: 所有想滚动出屏幕的view都需要设置这个flag- 没有设置这个flag的view将被固定在屏幕顶部。
                enterAlways: 这个flag让任意向下的滚动都会导致该view变为可见,启用快速“返回模式”。
                enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只能以最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。
                exitUntilCollapsed: 当视图会在滚动时,它一直滚动到设置的minHeight时完全隐藏。

            // 需要注意的是,后面两种模式基本只有在CollapsingToolbarLayout才有用,
            // 而前面两种模式基本是需要一起使用的,也就是说,这些flag的使用场景,基本已经固定了。
            .support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_collapseMode="pin" />

        .support.design.widget.CollapsingToolbarLayout>

    .support.design.widget.AppBarLayout>

    //app:layout_behavior 属性,没错,
    //      如果你使用CoordinatorLayout来实现Toolbar滚动渐变消失动画效果,那就必须在它下面的那个控件中加入这个属性,并且下面的这个控件必须是可滚动的。
    //  当设置了layout_behavior的控件滑动时,就会触发设置了layout_scrollFlags的控件发生状态的改变。
    .support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        "match_parent"
            android:layout_height="match_parent"
            android:text="这里面是内容区域"
            />

    .support.v4.widget.NestedScrollView>

.support.design.widget.CoordinatorLayout>

ok,直接编译运行看看效果吧!(注,布局中的android.support.v4.widget.NestedScrollView可以更换为其他控件,比如ViewPager)

源码下载:点击下载

你可能感兴趣的:(Android)