RecyclerView詳解(四):LayoutManager布局管理器

LayoutManager是一個抽象類冤竹,有3個子類:

LinearLayoutManager: 線性布局管理器 GridLayoutManager: 表格布局管理器 StaggeredGridLayoutManager: 瀑布流布局管理器

LinearLayoutManager

LinearLayoutManager 是線性布局管理器岭皂,使用頻率是最高的谈为,展示的樣式跟listview一模一樣脓规。 該類有3個構(gòu)造方法:

LinearLayoutManager(Context context) 

LinearLayoutManager(Context context,int orientation,boolean reverseLayout) 

LinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr,int defStyleRes) 

第一個構(gòu)造方法內(nèi)部調(diào)用了第二個構(gòu)造方法,第二個構(gòu)造方法參數(shù)的含義:

  • Context context :上下文禁灼,初始化時谤绳,構(gòu)造方法內(nèi)部加載資源用

  • int orientation :方向,垂直(RecyclerView.VERTICAL)和水平(RecyclerView.HORIZONTA )塌计,默認為垂直.

  • boolean reverseLayout:是否倒序挺身,設(shè)置為True,從最后一個item開始锌仅,倒序加載章钾。此時,RecyclerView第一個item是添加進Adapter中的最后一個热芹,最后一個item是第一個加進Adapter的數(shù)據(jù),RecyclerView會自動滑到末尾贱傀,另外item整體是依靠下方的。如下

    在這里插入圖片描述

orientation也可以通過manger.setOritation()設(shè)置 reverseLayout伊脓,也可以通過manager.setReverseLayout()設(shè)置府寒。setStackFromEnd(boolean stackFromEnd) 當設(shè)置為true時,列表便會從底部開始展示內(nèi)容,RecycelrView會自動滑倒尾部株搔。 這個方法和manager.setReverseLayout(true)共同點就是都自動滑動尾部剖淀,RecyclerView默認會展示末尾的item。差別在于纤房,manager.setStackFromEnd(true)不會影響內(nèi)部的數(shù)據(jù)順序纵隔,怎么添加進Adapter的,就怎么展示炮姨。

scrollToPosition(int position)滑動到指定item linearLayoutManager.scrollToPositionWithOffset(int position,int offset)滑動到指定item,在這個基礎(chǔ)上捌刮,又附加偏移了offset的距離。

獲取當前RecyclerView首尾可見item的位置方法

  • findFirstVisibleItemPosition() 返回當前RecycelrView中第一個可見的item的adapter postion
  • findLastVisibleItemPosition() 返回當前RecycelrView中最后一個可見的item的adapter postion
  • findFirstCompletelyVisibleItemPosition() 返回當前RecycelrView中第一個完整可見的item的adapter postion
  • findLastCompletelyVisibleItemPosition() 返回當前RecycelrView中最后一個完整可見的item的adapter postion

這4個方法剑令,只有當RecyclerView在屏幕展示出來后糊啡,才能得到正常的返回值,否則都是-1

GridLayoutManager

該管理器繼承LinearLayoutManager,也有3個構(gòu)造方法吁津,由于是繼承LiearLayoutMnager棚蓄,使用起來差別不大,構(gòu)造方法內(nèi)使用了super()方法來直接調(diào)用了父類的構(gòu)造方法:只是構(gòu)造函數(shù)會多一個參數(shù) spanCount : 列數(shù) 根據(jù)方法的注釋碍脏,可以知道梭依,默認情況下,GridLayoutManager是垂直的典尾。在方法內(nèi)役拴,列數(shù)是調(diào)用setSpanCount(spanCount)進行設(shè)置。如果GridLayoutManager是水平的钾埂,則spanCount 代表行數(shù)河闰,這個還是很容易理解。 GridLayoutManager不支持setStackFromEnd()褥紫,但支持setReverseLayout(boolean)方法姜性。其他LinearLayoutManager的方法在上面已經(jīng)提過了,就不重復了髓考。

這里我們spanCount 設(shè)置為3部念,效果如下圖


在這里插入圖片描述

StaggeredGridLayoutManager

構(gòu)造函數(shù)StaggeredGridLayoutManager(int spanCount, int orientation) 意思和GridLayoutManager一樣。使用也是一樣氨菇。這邊就不具體表現(xiàn)講了儡炼,看效果

http://r.photo.store.qq.com/psb?/V14WdqfR0u5uGA/O4kTkclTY*JGmBLtXVXlfoVsoB9tP2hCkNFgAYkqLIY!/r/dFMBAAAAAAAA

使用這3個布局管理器,差不多90%的需求都能滿足吧查蓉,LayoutManager也可以自定義實現(xiàn)乌询,后面有用在進行詳細討論,這邊僅說簡單的使用豌研。

git地址:https://gitee.com/stonezry/AndroidDemo

歡迎關(guān)注本人公眾號和小程序妹田,謝謝
公眾號
小程序
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竣灌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秆麸,更是在濱河造成了極大的恐慌,老刑警劉巖及汉,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沮趣,死亡現(xiàn)場離奇詭異,居然都是意外死亡坷随,警方通過查閱死者的電腦和手機房铭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來温眉,“玉大人缸匪,你說我怎么就攤上這事±嘁纾” “怎么了凌蔬?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闯冷。 經(jīng)常有香客問我砂心,道長,這世上最難降的妖魔是什么蛇耀? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任辩诞,我火速辦了婚禮,結(jié)果婚禮上纺涤,老公的妹妹穿的比我還像新娘译暂。我一直安慰自己,他們只是感情好撩炊,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布外永。 她就那樣靜靜地躺著,像睡著了一般衰抑。 火紅的嫁衣襯著肌膚如雪象迎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天呛踊,我揣著相機與錄音砾淌,去河邊找鬼。 笑死谭网,一個胖子當著我的面吹牛汪厨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愉择,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼劫乱,長吁一口氣:“原來是場噩夢啊……” “哼织中!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衷戈,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狭吼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后殖妇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刁笙,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年谦趣,在試婚紗的時候發(fā)現(xiàn)自己被綠了疲吸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡前鹅,死狀恐怖摘悴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舰绘,我是刑警寧澤蹂喻,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站捂寿,受9級特大地震影響叉橱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜者蠕,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一窃祝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踱侣,春花似錦粪小、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至待榔,卻和暖如春逞壁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锐锣。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工腌闯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雕憔。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓姿骏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親斤彼。 傳聞我的和親對象是個殘疾皇子分瘦,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359