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

2021-07-08 09:58:47 字數 3202 閱讀 7266

那麼,這時問題來了。怎麼能讓浮動區域a停在頂部,而且不影響其他內容的滑動呢?

在這裡我們可以寫多乙個和浮動區域a介面效果一模一樣的浮動區域b。在布局的時候,先把浮動區域b的可見性設定為gone,即隱藏起來。當浮動區域a滑動到頂部的時候,就把浮動區域b的可見性設定為visible,即可見。這時浮動區域b會覆蓋在整個螢幕的上面,即使整個螢幕在滑動的時候也不會影響浮動區域b的位置,那麼看起來就好像浮動區域a是停留在頂部位置不動了,見下圖。

(此時,設定浮動區域b的可見性為visible,即可見)

同理,當整個螢幕往下滑動的時候,再把浮動區域b的可見性設定為gone,那麼看起來的效果就好像浮動區域a又重新滑動起來了。

這個原理大家應該可以理解吧!

實現過程

說完原理之後,讓我們來看看在**裡面是怎麼實現這個過程的。

我們先看看布局檔案activity_main.xml

xmlns:android=""

xmlns:tools=""

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".mainactivity" >

android:id="@+id/scroll_view"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical">

android:id="@+id/image_view"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/pic01"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:background="#f6e4c0">

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textsize="10pt"

android:text="可樂雞翅 55元"

android:textcolor="#e68b4e"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="立即購買"

android:textcolor="#ffffff"/>

linearlayout>

android:id="@+id/list_view"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

listview>

linearlayout>

com.jimstin.topfloatdemo.view.myscrollview>

android:id="@+id/flow_llay"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:background="#f6e4c0"

android:visibility="gone">

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textsize="10pt"

android:text="可樂雞翅 55元"

android:textcolor="#e68b4e"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="立即購買"

android:textcolor="#ffffff"/>

linearlayout>

relativelayout>

布局檔案效果:

頂部的「可樂雞翅」就是剛剛所說的浮動區域b,中間的「可樂雞翅」則是浮動區域a,布局檔案應該不難理解。

那麼我們怎麼知道何時隱藏、顯示頂部的浮動layout呢?

由於整體的布局內容都是放在乙個自定義的scrollview裡面。所以,只要我們在scrollview裡面判斷:

當scrollview向上滑動的距離大於等於頂部區域的高度時,也就是浮動區域a的頂邊貼到螢幕頂部的時候,這是將浮動區域b的可見性設定為visible即可,否則設定為gone即可。

這樣就實現了我們想要的效果了。

關鍵**:

@override

protected

void

onscrollchanged(int l, int t, int oldl, int oldt) else }}

**的意思是,當scrollview向上滾動的高度大於等於mtopview頂部區域的高度時,那麼就將mflowview浮動layout的可見性設定為visible,否則設定為gone。

那麼這個判讀是在**的呢?

其實這個方法是在自定義的scrollview裡面的,可能這裡就有人疑問,為什麼要自定義scrollview?因為onscrollchange方法是乙個protected的方法,直接使用scrollview是使用不了該方法的。

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

說明原理 好,看完效果圖之後,我們來看一下這個效果的設計原理。首先,我們來看一張整體的設計圖 設計效果圖是分為三個部分 頂部區域 浮動區域a 列表區域。1.當螢幕往上面滑動的時候,互動區域a也跟著滑動 2.當浮動區域a滑動到頂部的時候,浮動區域a停留在頂部 上右圖 3.當螢幕往下滑動的時候,浮動區域...

仿美團pc,koa ssr(六)

一,地點詳情頁 product.vue元件,點選h3標題,跳轉到對應地點的詳情detail路徑 商品 rate v model meta.rate colors ff9900 ff9900 ff9900 disabled v if meta.rate 4 class s item comment 很...

仿美團pc,koa ssr(四)

一,城市服務功能 components 新建changecity目錄 新建isselect.vue元件 按省份選擇 select v model pvalue placeholder 省份 option v for item in province key item.value label item...