RecyclerView實現(xiàn)吸頂效果項目實戰(zhàn)(三):布局管理器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整體是依靠下方的梗掰。如下

    image

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)提過了,就不重復(fù)了移层。

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

image

StaggeredGridLayoutManager

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

image

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瀑粥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子三圆,更是在濱河造成了極大的恐慌狞换,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舟肉,死亡現(xiàn)場離奇詭異修噪,居然都是意外死亡,警方通過查閱死者的電腦和手機度气,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門割按,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人磷籍,你說我怎么就攤上這事适荣。” “怎么了院领?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵弛矛,是天一觀的道長。 經(jīng)常有香客問我比然,道長丈氓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任强法,我火速辦了婚禮万俗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饮怯。我一直安慰自己闰歪,他們只是感情好,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布蓖墅。 她就那樣靜靜地躺著库倘,像睡著了一般临扮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上教翩,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天杆勇,我揣著相機與錄音,去河邊找鬼饱亿。 笑死蚜退,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的路捧。 我是一名探鬼主播关霸,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杰扫!你這毒婦竟也來了队寇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤章姓,失蹤者是張志新(化名)和其女友劉穎佳遣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凡伊,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡零渐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了系忙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诵盼。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖银还,靈堂內(nèi)的尸體忽然破棺而出风宁,到底是詐尸還是另有隱情,我是刑警寧澤蛹疯,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布戒财,位于F島的核電站,受9級特大地震影響捺弦,放射性物質(zhì)發(fā)生泄漏饮寞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一列吼、第九天 我趴在偏房一處隱蔽的房頂上張望幽崩。 院中可真熱鬧,春花似錦寞钥、人聲如沸歉铝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽太示。三九已至,卻和暖如春香浩,著一層夾襖步出監(jiān)牢的瞬間类缤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工邻吭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留餐弱,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓囱晴,卻偏偏與公主長得像膏蚓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子畸写,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容