RecyclerView如何設定瀑布流

2021-08-18 19:20:52 字數 1954 閱讀 2919

一直在想著怎麼描述這樣的布局,畢竟用的是瀑布流的布局管理器,但是呢效果基本就是個網格布局,只是每列之間是上下錯開的,還是覺得叫交錯式網格布局吧。先看個效果。

效果看起來應該很好實現的。這裡僅僅是記錄下自己實現的思路,然後貼出一些重要的**。

基本思路就是運用staggeredgridlayoutmanager管理器來實現這種布局,在recyclerview介面卡中的onbindviewholder中設定,將第一行和第三行上的首張設定乙個margin值,距離頂部乙個距離,這樣既可實現該種布局。

其實還有一種思路也是運用瀑布流管理器,在自定義分割線中,根據position不同設定不同間隔距離,應該是可以的。

這裡就用第乙個思路,首先是recyclerview的用法,這個相信大家都很熟悉了,管理器官方的有三種,線性管理器linearlayoutmanager,網格管理器gridlayoutmanager,瀑布流管理器staggeredgridlayoutmanager,這裡用的是瀑布流管理器:

mrecyclerview = (recyclerview) findviewbyid(r.id.recyclerview);

final staggeredgridlayoutmanager layoutmanager = new staggeredgridlayoutmanager(3,staggeredgridlayoutmanager.vertical);//定義瀑布流管理器,第乙個引數是列數,第二個是方向。

layoutmanager.setgapstrategy(staggeredgridlayoutmanager.gap_handling_none);//不設定的話,閃爍錯位,有可能有整列錯位的情況。

mrecyclerview.setlayoutmanager(layoutmanager);//設定瀑布流管理器

mrecyclerview.additemdecoration(new gridspacingitemdecoration(40));//邊距和分割線,需要自己定義

mrecyclerview.setadapter(new myadapter(this));//設定介面卡

mrecyclerview.addonscrolllistener(new recyclerview.onscrolllistener()

});

上面的**就是recyclerview的使用了。接下來看介面卡中的**。

class

myadapter

extends

recyclerview.adapter

public

final string imageurls = new string //這裡是從網上載入的的鏈結組成的字串陣列。我這裡是從《第一行**》作者郭霖大神的講述瀑布流的文章中偷過來的。哈哈。不過都是網上的位址。

@override

public myviewholder oncreateviewholder(viewgroup parent, int viewtype)

@override

public

int getitemcount()

@override

public

void onbindviewholder(final myviewholder holder, int position)

});//這裡就是讓我們最終的效果跟gridview不同的原因了,我們把第一列和第三列的首張設定距離頂部乙個距離,這樣布局錯落有致,就是我們要的效果了

if (position == 0 || position ==2) else

}class

myviewholder

extends

recyclerview.viewholder}}

Multi Instrument如何測量裝置延時

發現超過150ms左右的延時就測不出來,是因為白雜訊的長度不夠嗎 虛儀科技multi tech.cn 15 28 29 fft點數多少 z 15 28 35 16384 虛儀科技multi tech.cn 15 29 29 窗函式是什麼 z 15 29 39 矩形虛儀科技multi tech.cn ...

recyclerView動畫解讀

我彷彿在逗我笑,就算繼承了,還是要呼叫setanimator方法,這樣還是會建立viewholder 那麼,自己給view設定動畫是否可以呢?我們知道,recyclerview是通過notifyitem來改變item的狀態的,這就是傳說中的觀察者模式,那麼我們沒有 notifyitemchanged...

RecyclerView 控制項使用

recyclerview的任務僅限於 和定位螢幕上的列表項,對於列表項的內容顯示我們還需要借助adapter子類和viewholder子類。viewholder的作用是容納view檢視。recyclerview工作需要layoutmanager支援。recyclerview檢視建立好後,要立即交給l...