自定義RecyclerView的scrollbar

2021-09-29 12:57:04 字數 1356 閱讀 7501

在頂部recyclerview的下面有乙個藍色的scrollbar,灰色區域代表整個recyclerview,藍色區域代表當前顯示位置。

public class recyclerviewslidingbar extends view 

public recyclerviewslidingbar(context context, @nullable attributeset attrs)

public recyclerviewslidingbar(context context, @nullable attributeset attrs, int defstyleattr)

private void init()

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

@override

protected void onlayout(boolean changed, int left, int top, int right, int bottom)

@override

protected void ondraw(canvas canvas)

}private float rvwidth;

private float rvviewwidth;

private float pointwidth;

private float scroll;

private float coefficient;

public void bindrecyclerview(final recyclerview mrv)

@override

public void onscrolled(@nonnull recyclerview recyclerview, int dx, int dy)

}});

}});}}

在recyclerview設定資料後呼叫bindrecyclerview()方法。

需求有個地方是和這個recyclerview有關的,8個以下的時候從上到下,從左到右配排序,超過8的時候多出item向右延伸,然後從上到下排,前8個不變。

if (mlistaction.size() > 8)  else
我是這麼做的,少於8個使用gridlayoutmanager,實現前8個的排序方案,多於8個使用使用staggeredgridlayoutmanager,通過list位置交換,達到8個以上的排序方案。

RecyclerView詳解 自定義動畫

如果覺得自定義比較繁瑣,github上也有相關的動畫實現 接下來我們將一步步分析這個實現類,最後在它的基礎上修改預設的動畫效果。先來看defaultitemanimator中的幾個重要的方法 void runpendinganimations 當有動畫需要執行時呼叫。boolean isrunnin...

RecyclerView詳解 自定義動畫

google為我們提供了乙個預設的動畫實現 defaultitemanimator 當資料新增 刪除 更新時,會觸發預設的動畫效果 通過本篇的學習,我們可以得到下面的效果 如果覺得自定義比較繁瑣,github上也有相關的動畫實現 接下來我們將一步步分析這個實現類,最後在它的基礎上修改預設的動畫效果。...

RecyclerView自定義進入動畫

定義布局動畫的xml檔案 recycler animation.xml android delay 15 表示延遲時間的百分數,乙個乙個的動畫 android animationorder normal 表示進入的動畫順序,normal 按順序,reverse 反向順序 random 隨機順序 xm...