仿小紅書巢狀滑動效果

2021-09-21 17:42:26 字數 4362 閱讀 2868

}由於recyclerview預設實現了nestedscrollingchild2,不需要我們自己實現nestedscrollingchild。

重寫recyclerview的ontouchevent方法,在action_move裡面合適的時候開啟/禁止彈性滑動,具體邏輯參考前面流程圖和**注釋。

在action_up的時候通過 scroller 實現彈性滑動的效果,關鍵是計算出 dy,**注釋裡面寫的很清楚。

關於 scroller 的使用參考這裡

public

class

linearlayoutnestscrollparent

extends

linearlayout

implements

nestedscrollingparent

public

linearlayoutnestscrollparent

(context context,

@nullable attributeset attrs)

private

void

init()

@override

protected

void

onfinishinflate()

@override

protected

void

onmeasure

(int widthmeasurespec,

int heightmeasurespec)

@override

public

boolean

onstartnestedscroll

(view child, view target,

int nestedscrollaxes)

return

false;}

@override

public

void

onnestedscrollaccepted

(view child, view target,

int nestedscrollaxes)

@override

public

void

onstopnestedscroll

(view target)

//先於 child 滾動

@override

public

void

onnestedprescroll

(view target,

int dx,

int dy,

int[

] consumed)

//後於child滾動

@override

public

void

onnestedscroll

(view target,

int dxconsumed,

int dyconsumed,

int dxunconsumed,

int dyunconsumed)

//返回值:是否消費了fling

@override

public

boolean

onnestedprefling

(view target,

float velocityx,

float velocityy)

//返回值:是否消費了fling

@override

public

boolean

onnestedfling

(view target,

float velocityx,

float velocityy,

boolean consumed)

@override

public

intgetnestedscrollaxes()

@override

public

void

computescroll()

}}

實現nestedscrollingparent介面,只要實現onnestedscroll這個方法,全部消費 nestedscrollingchild傳來的 dy 。

另外需要注意的onmeasure方法,重新測量高度,否則上滑時候recyclerview下面部分會出現空白。

<?xml version="1.0" encoding="utf-8"?>

xmlns:android

=""=""

xmlns:tools

=""android:layout_width

="match_parent"

android:layout_height

="match_parent"

android:orientation

="vertical"

>

android:id

="@+id/img"

android:layout_width

="match_parent"

android:layout_height

="wrap_content"

/>

android:id

="@+id/rv_photos"

android:layout_width

="match_parent"

android:layout_height

="0dp"

android:layout_margintop

="2dp"

android:layout_weight

="1"

/>

cn.feng.xhsimageview.views.linearlayoutnestscrollparent

>

仿VS安裝介面小球滑動效果

在visual studio 2010後續版本的安裝介面中,可以發現一組小球在滑動表示安裝程式正在進行 於是嘗試用css實現了一下。首先需要建立用來表示小球的html結構 div class container div class circle c1 div div class circle c2 ...

仿ios中layout的滑動效果

package code.suibianchou.com.custormview2 import android.annotation.suppresslint import android.content.context import android.graphics.rect import an...

高仿網易新聞頂部滑動條效果

這個是網易新聞的主介面,我們知道底部可以用tabhost實現,這個很容易,我們在其他軟體中也會經常用到。至於頂部的滑動條,個人感覺還是比較漂亮的所以今天也模仿了下,網易頂部滑動條的效果,由於初次模仿這種效果,可能有些地方還不夠完美,不過基本已經實現,希望大家能夠喜歡。廢話不多說,下面上 首先是布局l...