zoukankan      html  css  js  c++  java
  • android 新控件 AppBarLayout 使用

    AppBarLayout 是继承LinerLayout实现的一个ViewGroup容器组件,它是为了Material Design设计的App Bar,支持手势滑动操作。

    默认的AppBarLayout是垂直方向的,它的作用是把AppBarLayout包裹的内容都作为AppBar。代码布局如下:

    <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            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"
                android:minHeight="?attr/actionBarSize"></android.support.v7.widget.Toolbar>
    
            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_scrollFlags="scroll"
                app:tabIndicatorColor="@android:color/holo_red_dark"
                app:tabSelectedTextColor="@android:color/holo_red_dark"
                app:tabTextColor="@android:color/black" />
    
    </android.support.design.widget.AppBarLayout>

    此处将Toolbar 和Tablayout的组合部分共同构成 AppBar的效果。 AppBarLayout必须作为Toolbar的父布局容器。AppBarLayout支持手势滑动效果的,要跟CoordinatorLayout配合使用。

    <?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"
        android:id="@+id/main_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
    
        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            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.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabGravity="fill" />
    
    
        </android.support.design.widget.AppBarLayout>
    
        <!--可滑动的布局内容-->
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    
        <android.support.design.widget.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_discuss"
            android:layout_gravity="bottom|end"/>
    
    
    </android.support.design.widget.CoordinatorLayout>

    app:layout_scrollFlags=”scroll|enterAlways” 属性来确定哪个组件是可滑动的。layout_scrollFlags的属性有

    1. scroll: 所有想滚动出屏幕的view都需要设置这个flag- 没有设置这个flag的view将被固定在屏幕顶部。
    2. enterAlways: 这个flag让任意向下的滚动都会导致该view变为可见,启用快速“返回模式”。
    3. enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。
    4. exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端。

    为了使得Toolbar可以滑动,我们必须还得有个条件,就是CoordinatorLayout布局下包裹一个可以滑动的布局,比如 viewPager,RecyclerView,NestedScrollView(经过测试,ListView,ScrollView不支持)具有滑动效果的组件。并且给这些组件设置属性,AppBarLayout 中可滑动的Toolbar可以滑动。

  • 相关阅读:
    c语言中while循环
    c语言中while循环
    css元素重叠代码
    css指定裁剪区域代码
    css元素重叠代码
    css正常文档布局和元素可见性代码
    css元素浮动代码
    css指定裁剪区域代码
    css正常文档布局和元素可见性代码
    css元素浮动代码
  • 原文地址:https://www.cnblogs.com/IT-lss/p/7856828.html
Copyright © 2011-2022 走看看