注意:這里你看到的就一個 RecycleView 包裹,13 號那個控件是可以拖拽的在屏幕范圍內,5 號控件是可以黏在頂部的,還有很多好東西,就自己去玩 demo 吧
通過定制化的 LayoutManager,接管整個 RecyclerView 的布局邏輯;LayoutManager 管理了一系列 LayoutHelper,LayoutHelper 負責具體布局邏輯實現的地方;每一個LayoutHelper 負責頁面某一個范圍內的組件布局;不同的 LayoutHelper 可以做不同的布局邏輯,因此可以在一個 RecyclerView 頁面里提供異構的布局結構,這就能比系統自帶的LinearLayoutManager、GridLayoutManager 等提供更加豐富的能力。同時支持擴展LayoutHelper 來提供更多的布局能力。
默認通用布局實現,解耦所有的 View 和布局之間的關系: Linear, Grid, 吸頂, 浮動, 固定位置等。
LinearLayoutHelper: 線性布局
GridLayoutHelper: Grid布局, 支持橫向的colspan
FixLayoutHelper: 固定布局,始終在屏幕固定位置顯示
ScrollFixLayoutHelper: 固定布局,但之后當頁面滑動到該圖片區域才顯示, 可以用來做返回頂部或其他書簽等
FloatLayoutHelper: 浮動布局,可以固定顯示在屏幕上,但用戶可以拖拽其位置
ColumnLayoutHelper: 欄格布局,都布局在一排,可以配置不同列之間的寬度比值
SingleLayoutHelper: 通欄布局,只會顯示一個組件 View
OnePlusNLayoutHelper: 一拖N布局,可以配置 1-5 個子元素
StickyLayoutHelper: stikcy 布局, 可以配置吸頂或者吸底
StaggeredGridLayoutHelper: 瀑布流布局,可配置間隔高度/寬度
使用:
直接在module中build.gradle添加依賴
compile('com.alibaba.android:vlayout:1.0.2@aar') { transitive = true }
使用方法直接參考 Demo(https://github.com/alibaba/vlayout/blob/master/README-ch.md#demo)
我這里就不介紹具體使用方法了,直接參考demo
說說這個框架現在存在的問題吧
1.當我創建多種類型的 LayoutHelper 在一個 RecycleView 中使用時,可能導致layoutHelper.setBgColor(0xFFF5A623);這個方法失效,尤其是我在使用StickyLayoutHelper時,我是一直無效的
2.使用 StickyLayoutHelper 時,會導致界面繪制后顯示的界面很臟,但是只要一拖動RecycleView 就自動清理了
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。