}由於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...