返回

Material Design 组件之 AppBarLayout - 为您的应用增添灵动之美

Android


AppBarLayout - 您的应用必备的灵动导航栏


想让您的应用更具沉浸感、更符合 Material Design 设计规范?AppBarLayout 组件将成为您的不二之选!这个神奇的垂直方向 LinearLayout 能够让您的应用导航栏随手势滑动而动,赋予用户丝滑顺畅的交互体验。


什么是 AppBarLayout?

AppBarLayout 顾名思义,就是位于应用顶部的布局,通常包含标题、导航栏、工具栏等元素。它的主要作用是协调这些元素在滚动时产生的视觉效果,比如标题和导航栏的淡入淡出、工具栏的隐藏和显示等。


AppBarLayout 的重要属性

AppBarLayout 提供了丰富的属性,让我们可以轻松实现各种效果。

  • scrollFlags :这个属性决定了 AppBarLayout 在滚动时如何响应手势。它有两种主要模式:

    • SCROLL_FLAG_SCROLL :这意味着 AppBarLayout 将随着内容一起滚动。
    • SCROLL_FLAG_SNAP :这意味着 AppBarLayout 将在滚动到一定距离时自动隐藏或显示。
  • targetElevation :这个属性设置了 AppBarLayout 在完全展开时的海拔高度。海拔高度越高,阴影就越明显。


AppBarLayout 的使用

AppBarLayout 的使用非常简单,只需要将其作为父布局,然后将子布局添加到其中即可。子布局可以是标题、导航栏、工具栏等任何元素。

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|snap"
            app:contentScrim="?attr/colorPrimary"
            app:toolbarId="@+id/toolbar">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:scaleType="centerCrop"
                android:src="@drawable/image" />

            <com.google.android.material.toolbar.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        </com.google.android.material.appbar.CollapsingToolbarLayout>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

结语

AppBarLayout 是一个非常实用的组件,它可以帮助您轻松实现各种炫酷的效果。如果您想让您的应用更具沉浸感、更符合 Material Design 设计规范,那么 AppBarLayout 绝对是您的不二之选!