Re: [問題] GridLayoutManager要如何由左至右排列

看板AndroidDev作者 (T@cO)時間4年前 (2020/05/09 07:18), 4年前編輯推噓1(100)
留言1則, 1人參與, 4年前最新討論串5/5 (看更多)
回覆自己的文章 ※ 引述《taco2548 (T@cO)》之銘言: : 我希望我的RecyclerView是可以左右拖曳,而不是上下拖曳 : GridLayoutManager layoutManager : = new GridLayoutManager(context, 3, LinearLayoutManager.HORIZONTAL, false); : 呈現的結果如下 : 00 03 06 09 : 01 04 07 10 : 02 05 08 11 : 我希望呈現的結果如下 : 00 01 02 03 : 04 05 06 07 : 08 09 10 11 : 請問應該要怎麼做才能達到我想要的結果 : 設定LinearLayoutManager.VERTICAL雖然有用 : 但會變成上下拖曳 : 請各位大大開釋一下 將List重排即可 List<String> newNumList = new ArrayList<>(); int baseCount = list.size();//清單總數 int tmpColumn = baseCount/spanCount;//清單總數 除 列數(橫) int columnCount = baseCount%spanCount == 0 ? tmpColumn:tmpColumn+1;//每列數量 for (int i = 0; i < columnCount; i++) { for (int n = 0; n < spanCount; n++) { int target = (columnCount * n) + i; if (target >= baseCount) { newNumList.add("null"); //佔位,Adapter需做出處理 continue; } newNumList.add(list.get(target)); } } 重點部份是先算出總共有幾行 如果有餘數就直接把行數+1 將最後一行後面的空白補滿 然後再從Adapter去處理空白的問題 這樣不但美觀 還能適應spanCount是未知數的問題 如果沒有這樣子處理 可能會變成如下狀況 00 03 06 09 01 04 07 02 05 08 未補滿空白,轉換後 X 00 01 02 03 04 05 06 07 08 09 有補滿空白,轉換後 O 00 01 02 03 04 05 06 07 08 09 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.74.129.135 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1588979938.A.1B1.html ※ 編輯: taco2548 (42.74.129.135 臺灣), 05/09/2020 11:52:22

05/10 22:21, 4年前 , 1F
05/10 22:21, 1F
文章代碼(AID): #1UjUZY6n (AndroidDev)
文章代碼(AID): #1UjUZY6n (AndroidDev)