以前也寫了一個ViewGroup
版本的流式佈局,該流式佈局有兩大優勢:能夠設置行數和是否內容在該行中居中顯示(猛戳),說真的自從對RecyclerView的LayoutManager有新的認識後,徹底不用擔憂不少的複雜佈局了。並且對ViewGroup測量過程也不用擔憂了,由於裏面有LayoutManager幫咱們實現了。下面就進入該篇文章的主題吧,廢話很少說,直接上圖更有說服力。java
上面的示例圖是我把ItemView分別用了TextView和ImageView。其實這些是沒什麼好說的,主要是如何定義這樣的LayoutManager。相信你們都用過了LinearLayoutManager吧,系統提供的LayoutManager都是對齊的方式進行排版的,咱們這裏的flow的樣式就是在排版item以前,判斷了該行多餘的空間還夠不夠顯示,若是不夠直接換行顯示的思路。git
詳見TextFlowActivity、DiffHeightTextFlowActivity、PhotoFlowActivitygithub
RecyclerView recyclerView = (RecyclerView) findViewById(flow);
FlowLayoutManager flowLayoutManager = new FlowLayoutManager();
//設置每個item間距
recyclerView.addItemDecoration(new SpaceItemDecoration(dp2px(10)));
recyclerView.setLayoutManager(flowLayoutManager);
recyclerView.setAdapter(new FlowAdapter());
複製代碼
常見商品屬性界面(RV嵌套RV,item高度爲wrap_content):bash
使用:見ProductActivityapp
常見懸浮商品屬性界面(RV嵌套RV,item高度爲wrap_content):maven
使用:見SuspensionProductActivity佈局
動畫修復問題: 測試
使用:見TextFlowActivitygradle
viewpager中流式佈局應用: 動畫
添加RV嵌套RV高度爲wrap_content不顯示問題,請使用: NestedRecyclerView
添加長點擊進入刪除效果,點擊外面進入正常模式:
使用:見 LongClickDeleteTextFlowActivitygradle依賴:
all projects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.1002326270xc:LayoutManager-FlowLayout:v1.6'
}
複製代碼
歡迎你們提出問題,留言板留言或郵箱直接聯繫我。我會第一時間測試相關的bug
歡迎客官到本店光臨:184793647
(qq羣)
email: a1002326270@163.com
csdn:enter
github:enter