Android滑動到頂部懸停

StaciAwb 8年前發布 | 73K 次閱讀 安卓開發 Android開發 移動開發

無圖說卵,先上圖

jianshu-top.gif

查閱資料后,發現網上大部分都是用這種方法實現的:

多寫一個和需要懸浮的部分一模一樣的layout,先把浮動區域的可見性設置為gone。當浮動區域滑動到頂部的時候,就把浮動區域B的可見性設置為VISIBLE。這樣看起來就像懸浮在頂部不動了。

具體看下邊文章 :

高仿美團app,浮動layout滑動到頂部懸停效果

Android實例-仿美團app,浮動layout滑動到頂部懸停效果

這里介紹的是另外一種方式:

使用design包中的控件

<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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.peipei.app.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="250dp">

        <android.support.design.widget.CollapsingToolbarLayout
            app:layout_scrollFlags="scroll"
            app:contentScrim="#000000"
            android:layout_width="match_parent"
            android:layout_height="220dp">

            <TextView
                android:text="banner區域"
                android:gravity="center"
                android:textColor="#ffffff"
                android:background="#987545"
                android:layout_width="match_parent"
                android:layout_height="220dp"/>

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

        <TextView
            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:text="懸浮的部分"/>

     </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">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="@dimen/text_margin"
                android:text="@string/large_text"/>

      </android.support.v4.widget.NestedScrollView>

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

實現步驟:

  1. 將需要懸浮的layout放到CollapsingToolbarLayout之外,AppBarLayout之內
  2. 將CollapsingToolbarLayout的app:layout_scrollFlags設置為scroll
  3. 給滾動的NestedScroolView設置
    app:layout_behavior="@String/appbar_scrolling_view_behavior"
    就大功告成了(記得根布局要是CoordinatorLayout)

最終效果:

damo-jianshu-top.gif

 

來自:http://www.jianshu.com/p/abdb9828a00d

 

 本文由用戶 StaciAwb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!