2017-02-06 148 views
2

我在使用GridLayoutManager填充回收器視圖時遇到問題。首先按行填充GridLayoutManager,然後按列填充

我需要完成第一行,完成之後,轉到第二行。我做了一個算法,對列表重新排序,以便它能夠正確顯示,並且我可以在不做任何映射的情況下點擊項目。這工作正常,但所有項目都可以在屏幕上顯示而不滾動時出現問題。

例如,我有4個項目,我需要在2行網格佈局(水平佈局)中顯示它們。屏幕上有3個項目的空間,所以我需要它們在第一行,而第四個項目應該是第二行中的唯一一個。

爲了讓你的照片我都默認:

0 2 
1 3 

而我需要的是:

0 1 2 
3 

任何想法?

編輯: 按照要求,這裏是我使用的代碼:

GridLayoutManager layoutManager = new GridLayoutManager(getContext(),2,LinearLayoutManager.HORIZONTAL, false); 

回答

0

當您要定義gridLayoutManager,你指定的列

RecyclerView rView = new RecyclerView(this); 
rView.setLayoutManager(new GridLayoutManager(context, <your number of columns>)); 

數量設置此值爲3(在你的情況下)將導致三列,兩行。您的陣列適配器從左到右填充字段,然後從上到下填充字段。

+0

如果失敗,您可以將「null」或「」添加到您的數組,直到它被您想要的列數(此例中總共爲6個元素)均勻分割爲止。這將在第二行填充兩個額外的列,但沒有任何內容,但仍然將它們添加到佈局。 – keag

+0

第一種方法是我嘗試過並且沒有工作的方法。默認情況下,它不會顯示您提到的項目(查看問題如何訂購項目)。第二種方法不應該工作! 我結束重新排列整個列表以匹配預期的結果,但沒有一個明確的解決方案來解決這個問題。 無論如何,謝謝! –

+0

你如何聲明你的gridLayoutManager,你可以用你現有的代碼更新你的答案嗎? – keag