Android RecyclerView 實現position列表倒序排列(彙總)

最近業務需求中要用到RecyclerView 列表倒序排列,於是便研究了一下,並彙總

第一種: 在設置數據源的時候:

// 設置倒序
        Collections.reverse(bean);
        myViewHolder.tv.setText(bean.get(position));

第二種: Collections

Collections.sort(list);  
System.out.println("list-》 默認排序後的狀態");  
SortList.output(list);  

第三種: 自定義Comparator比較對象,在setAdapter之前調用,Beans需要implements Comparator :

// 自定義比較器:假設是按書的價格排序  
    static class PriceComparator implements Comparator {  
        public int compare(Object object1, Object object2) {// 實現接口中的方法  
            Book p1 = (Book) object1; // 強制轉換  
            Book p2 = (Book) object2;  
            return new Double(p1.price).compareTo(new Double(p2.price));  
        }  
    }  

//調用
Collections.sort(list, new PriceComparator()); // 根據價格排序  

//示例:單獨比較
    Comparator<Beans> itemComparator = new Comparator<Beans>() {  
        public int compare(Beans info1, Beans info2){  
            return info1.getAges().compareTo(info2.getAges());  
        }  
    };  
    Collections.sort(mProfileList, itemComparator);  

第四種: RecyclerView的佈局是有LayoutManager控制的,而LinearLayoutManager就支持了倒序的功能,所以我們可以直接用:

setStackFromEnd(true);
setReverseLayout(true);


//示例:setAdapter之前使用
LinearLayoutManager layout = new LinearLayoutManager(this);
layout.setStackFromEnd(true);//列表再底部開始展示,反轉後由上面開始展示
layout.setReverseLayout(true);//列表翻轉
rView.setLayoutManager(layout);

第五種: 和listview一樣,size和position是相應的,只要用size來反轉數據即可,或者重寫adapter的getItem方法,改爲get(size-1-position)。

第六種: list增加數據源(這種不太推薦)

//顧名思義,添加到頭部數據
list.addFirst(item)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章