zoukankan      html  css  js  c++  java
  • AppBarLayout学习笔记

    LinearLayout的子类

    AppBarLayout要点:

    1. 功能:让子View(AppBar)可以选择他们自己的滚动行为。

    2. 注意:需要依赖CoordinatorLayout作为父容器,同时也要求一个具有可以独立滚动的兄弟节点(或兄弟节点的子view可以滚动)才能发挥其功能。

    <?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"
        tools:context="com.arenas.appbarlayouttest.MainActivity"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!-- AppBarLayout,作为CoordinatorLayout的子类 -->
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:fitsSystemWindows="true"
            android:layout_height="wrap_content"
            >
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                />
        </android.support.design.widget.AppBarLayout>
    
        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">
            <!-- Your scrolling content -->
            <TextView
                android:layout_width="match_parent"
                android:layout_margin="20dp"
                android:text="text"
                android:layout_height="wrap_content"/>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>

    然后再Activity中设置好toolbar即可运行程序,可以看到效果……

    注意:

    兄弟节点的app:layout_behavior="@string/appbar_scrolling_view_behavior"属性很重要;

    AppBarLayout子view的app:layout_scrollFlags属性很重要,其值有三个: 

    scroll: 所有想滚动出屏幕的view都需要设置这个flag(所以,这里的toolbar设置了),没有设置这个flag的view将被固定在屏幕顶部。

    enterAlways: 这个flag让任意向下的滚动都会导致该view变为可见(向下滚动,toolbar又出现),启用”快速返回”模式。

    enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只会在最小高度处进入,只有当滚动视图到达顶部时才扩大到完整高度。

    exitUntilCollapsed: 在滚动过程中,只有当视图折叠到最小高度的时候,它才退出屏幕。

    注意AppBarLayout的兄弟节点(或兄弟节点的子view)一定要是可以滚动的View/ViewGroup,如:NestedScrollView,RecycleView;(据说ListView不行,木有测试了)

    那些使用Scroll flag的视图必须在其他没有使用Scroll flag的视图之前声明。这样才能确保所有的视图从顶部撤离,剩下的元素固定在前面(译者注:剩下的元素压在其他元素的上面)。

    参考文章:http://blog.csdn.net/ydxlt/article/details/50932432

  • 相关阅读:
    Linux编程之UDP SOCKET全攻略
    Java8 flatMap的sample
    swagger bug
    bash中的pasue
    树、二叉树、满二叉树、完全二叉树概念分清
    复习一下高中数学
    SpringBoot Junit Maven JaCoCo
    事务传播和隔离
    springboot swagger2 泛型踩坑记
    Code::Blocks debug程序
  • 原文地址:https://www.cnblogs.com/i-love-kobe/p/5543247.html
Copyright © 2011-2022 走看看