亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android應用中利用CoordinatorLayout實現一個標題滾動效果

發布時間:2020-11-27 15:43:10 來源:億速云 閱讀:209 作者:Leah 欄目:移動開發

本篇文章為大家展示了怎么在Android應用中利用CoordinatorLayout實現一個標題滾動效果,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

在Material Design里,CoordinatorLayout通常用來作為頂層視圖,來協調處理各個子View之間的動作,從而實現各種動畫效果,如Snackbar與FloatingActionButton的配合顯示效果,就是以CoordinatorLayout作為根布局來實現的

CoordinatorLayout提供Behaviors接口,子View通過實現Behaviors接口來協調和其它View之間的顯示效果,可以這么理解:

CoordinatorLayout讓其子View之間互相知道彼此的存在,任意一個子View的狀態變化會通過Behaviors通知其它子View,CoordinatorLayout就像一個橋梁,連接不同的View,并使用Behavior處理各個子View之間的通信

在xml布局文件中進行設置

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  xmlns:app="http://schemas.android.com/apk/res-auto">

  <!--包裹頭部View實現滑動效果-->
  <android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat">

    <!--標題欄-->
    <android.support.v7.widget.Toolbar
      android:id="@+id/tb_toolbar"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      app:navigationIcon="@android:drawable/ic_dialog_email"
      app:title="Title"
      app:layout_scrollFlags="scroll" />

    <!--Tab導航欄-->
    <android.support.design.widget.TabLayout
      android:id="@+id/tab_layout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      app:tabMode="fixed"
      app:layout_scrollFlags="scroll|enterAlways"/>

  </android.support.design.widget.AppBarLayout>

  <android.support.v4.view.ViewPager
    android:id="@+id/vp_tab_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>

首先給被AppBarLayout包裹的View添加app:layout_scrollFlags屬性,并設置相應的值

? scroll:讓該View可以滾動出屏幕

? enterAlways:不需要滾動到頂部,只要有向上滾動的事件就顯示該View

? enterAlwaysCollapsed:定義該View何時進入,如果你定義了一個最小高度minHeight,同時enterAlways也定義了,那么該View將會在到達這個最小高度的時候開始慢慢顯示,直到滾動組件滾動到頂部時再完全展開

? exitUntilCollapsed:定義該View何時退出,如果你定義了一個最小高度minHeight,那么這個View將在滾動到達這個最小高度時消失

如果不設置layout_scrollFlags屬性,那么該View就會固定在屏幕上

enterAlwaysCollapsed和exitUntilCollapsed屬性主要是在搭配CollapsingToolbarLayout時使用的

注意:布局的時候,AppBarLayout里面滾動的View要放在固定的View上面

然后在CoordinatorLayout布局里放一個可以滾動的View(不支持ListView),這里使用ViewPager里放置一個RecylerView,為該ViewPager設置app:layout_behavior屬性,這里可直接使用Android自帶的值

app:layout_behavior=”@string/appbar_scrolling_view_behavior”

設置該值的作用相當于告訴CoordinatorLayout,此View是一個滾動控件,如果該View滾動了,那么設置了layout_scrollFlags屬性的控件就可以響應滾動事件了

想實現效果一,總結

使用CoordinatorLayout作為根布局

使用AppBarLayout包裹頭部View,并給需要滾動的View設置app:layout_scrollFlags屬性

給滑動組件設置app:layout_behavior屬性

效果二:

使用到CollapsingToolbarLayout布局,我們在效果一的基礎上更改布局代碼

<?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:layout_width="match_parent"
  android:layout_height="match_parent">

  <android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
      android:id="@+id/collapsing_toolbar"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:contentScrim="?attr/colorPrimary"
      app:expandedTitleMarginEnd="88dp"
      app:expandedTitleMarginStart="66dp"
      app:layout_scrollFlags="scroll|exitUntilCollapsed">

      <!--拉開后顯示的背景圖片-->
      <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@drawable/bg_image"
        app:layout_collapseMode="pin"/>

      <!--標題欄-->
      <android.support.v7.widget.Toolbar
        android:id="@+id/tb_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_collapseMode="pin"
        app:navigationIcon="@android:drawable/ic_dialog_email"
        app:title="Title"/>

    </android.support.design.widget.CollapsingToolbarLayout>

  </android.support.design.widget.AppBarLayout>

  <android.support.v7.widget.RecyclerView
    android:id="@+id/rv_data"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>

一些屬性的作用

? title:設置Toolbar的標題,注意:如果在CollapsingToolbarLayout中指定了title屬性,那么Toolbar中的title屬性將會變得無效

? expandedTitleMarginStart:設置下拉伸縮完成后,ToolBar標題文字左邊的margin距離

? expandedTitleMarginEnd:設置下拉伸縮完成后,Toolbar標題文字右邊的margin距離

? contentScrim:設置Toolbar折疊到頂部后的背景

? layout_collapseMode:折疊效果,有兩個值,pin代表從底部拉出,parallax代表從中間展開

總結

首先我們設置一個固定的高度給AppBarLayout

然后給AppBarLayout的子View包裹了一層CollapsingToolbarLayout,并設置CollapsingToolbarLayout的滾動屬性為scroll|exitUntilCollapsed

最后再為CollapsingToolbarLayout里的子View設置layout_collapseMode屬性,指定其展示效果

上述內容就是怎么在Android應用中利用CoordinatorLayout實現一個標題滾動效果,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古蔺县| 饶阳县| 汤阴县| 石景山区| 阿拉善盟| 北辰区| 双柏县| 霍林郭勒市| 巴东县| 保德县| 张家界市| 海城市| 高要市| 资讯| 营山县| 江川县| 新兴县| 伊吾县| 涪陵区| 波密县| 扶沟县| 达尔| 云南省| 洱源县| 伊宁县| 临猗县| 恭城| 石渠县| 呼玛县| 青冈县| 宽城| 蒙城县| 吴江市| 马尔康县| 长岛县| 台中市| 绵阳市| 宁河县| 溧水县| 安龙县| 泾川县|