使用RecyclerView實現簡單的橫向滑動
最近在Android群裡面,看到挺多人都在用RecyclerView。好奇的我也去看了看如何使用。做了個小Demo,雖然知道RecyClerView 的文章已經爛大街了。但是想寫篇文章總結一下(畢竟自己寫的是自己的,別人寫的是別人的)。
介紹: RecyclerView 不僅可以輕鬆實現 Listview 同樣的效果 並且還能輕鬆實現 (瀑布,橫向滑動) 效果。 並且Android 開發團隊,將RecyclerView 定義在了 Support 庫當中,所以如果你想使用RecyclerView 的話就必須先匯入 相應的依賴庫。
1. 編寫xml程式碼以及加入依賴
(1).先匯入最重要的 "依賴" !
compile'com.android.support:recyclerview-v7:25.1.0'
(2).寫好RecyclerView的xml佈局
Activity_RecyclerView_xml
(3). 俺們再寫好RecyclerView的 Item 的 xml佈局
Activity_RecyclerView_Item_xml
2.ok 俺們已經把最基礎的xml檔案程式碼已經完成現在開始編寫java程式碼把!
(2.1) 編寫MainActivity.java
使用介紹:
(2.1.1)如果你想實現 RecyClerView 橫向滑動功能只需要,使用 RecyClerView的線性佈局管理器 LinearLayoutManager
,方法呼叫 setOrientation() , 來控制使用什麼樣的佈局樣式,如果你想實現橫向滑動的話就使用 setOrientation(LinearLayoutManager.HORIZONTAL);。在setOrientation的方法中有3種佈局樣式分別是:
(1) HORIZONTAL 最常使用的橫向佈局
(2) VERTICAL 跟ListView一致的豎向佈局
(3) INVALID_OFFSET 偏移佈局
並且在LinearLayoutManager 線性佈局管理器(自己的理解)之外 RecyclerView還存在了GridLayoutManager 網格佈局管理器 和
StaggerredGridLayoutManager 瀑布流佈局管理器。可以使用他們實現不同的佈局樣式哦。
現在我們設定好一個佈局樣式後再使用 setLayoutManager 把設定好的佈局樣式新增到 RecyClerView中然後在呼叫介面卡,添再在把返回的資料,新增到RecyClerView就完成啦,廢話不多說直接開始擼程式碼吧!
下方是Activity.java程式碼↓
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recycleview);
recy=(RecyclerView)findViewById(R.id.reyview);
getData(); //獲取 RecyClerView 介面卡 需要的資料
initData(); // 載入資料的方法
}
private voidgetData() {//虛擬資料
datadatas=null;
for(inti=0;i<=10;i++) {
datas=newdata();
datas.setId(i);
list.add(datas);
}
}
private voidinitData() {
// LinearLayoutMannager 是一個佈局排列 , 管理的介面,子類都都需要按照介面的規範來實現。
LinearLayoutManager ms= new LinearLayoutManager(this);
ms.setOrientation(LinearLayoutManager.HORIZONTAL);// 設定 recyclerview 佈局方式為橫向佈局
// LinearLayoutManager 種 含有3 種佈局樣式 第一個就是最常用的 1.橫向 , 2. 豎向,3.偏移
recy.setLayoutManager(ms); //給RecyClerView 新增設定好的佈局樣式
orAdapter oap=new orAdapter(list); //初始化介面卡
recy.setAdapter(oap); // 對 recyclerview 新增資料內容
}
介面卡介紹:
RecyClerView 的介面卡 和 ListView 的介面卡還是很相識的,但是和ListView的介面卡簡潔了許多。由於RecyclerView 的介面卡繼承與 RecyclerView.Adapter 方法 所以我們必須重寫 3個方法,並且需要指定泛型為 orAdapter.ViewHolder (orAdapter為自己的類名)。其中ViewHodler是我們在orAdapter 定義的一個內部類。(個人感覺很像把BaseAdatper的getView分成了2個部分)。
介面卡中所有方法
1.onCreateViewHoder; 為ViewHodler 賦予一個xml 介面
2.onBindViewHolder; 用來給控制元件賦值
3.getItemCount ; 讓我們知道RecyclerView 一共有多少個子項.
4.orViewHolder ViewHolder 內部類
介面卡程式碼:
RecyclerView_Adapter
到這裡就完事兒拉,是不是覺得很簡單。
作者:Mircale1 連結:https://www.jianshu.com/p/b82c407c9056 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。