2015年3月9日 星期一

Android 開發(八十四) TripleLayoutRecyclerView

今天要介紹如何利用recyclerview建立可切換layout,如下圖所示


要建立這樣的layout有兩個挑戰必須克服
1.如何動態切換column
2.如何動態切換layout


1.如何動態切換column

要解決這個問題,我們可以使用 GridLayoutManager裡的method setSpanSizeLookup
SpanSizeLookup可以幫我們決定特定position的span是多少,
for example:
mManager = new GridLayoutManager(this,2);
代表著這個gridlayout每一行的Span size都會是2,當某個item的SpanSize 為 1則該行可以放兩個item,當某個item的SpanSize為2則該行只能放一個item,利用這個特性,我們就可以改變我們的layout每行的個數. 這樣我們就能動態的切換column數了
如下,當改變mViewSpan則每行item的數量就會改變
           ((GridLayoutManager) layout).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
                @Override
                public int getSpanSize(int i) {
                    return ((GridLayoutManager) getLayoutManager()).getSpanCount() - mViewSpan +1;
                }
            });


在我們解決切換column的問題之後,接著要處理的就是如何動態切換layout

所幸這個問題非常容易解決,我們只需要修改getItemViewType,根據不同的type回傳不同的值,再利用onCreateView去實作不同的view即可.

最後還是要附上sample code

沒有留言:

張貼留言