RecyclerView 簡單介紹
RecyclerView只負(fù)責(zé)回收和重用的工作,所有關(guān)于布局、繪制和其他相關(guān)的問題,也就是跟數(shù)據(jù)展示相關(guān)的所有問題,都被委派給了一些”插件化”的類來處理。
以下是RecyclerView中用于數(shù)據(jù)展示的一些重要的類,他們都是RecyclerView的內(nèi)部類:
- Adapter:包裝數(shù)據(jù)集合并且為每個條目創(chuàng)建視圖。
- ViewHolder:保存用于顯示每個數(shù)據(jù)條目的子View。
- LayoutManager:將每個條目的視圖放置于適當(dāng)?shù)奈恢谩?/li>
- ItemDecoration:在每個條目的視圖的周圍或上面繪制一些裝飾視圖。
- ItemAnimator:在條目被添加、移除或者重排序時添加動畫效果。
RecyclerView是谷歌V7包下新增的控件,用來替代ListView的使用,在RecyclerView標(biāo)準(zhǔn)化了ViewHolder類似于ListView中convertView用來做視圖緩存
布局管理:設(shè)置LayoutManager
使用場景:通過設(shè)置LayoutManager來快速實現(xiàn)listview、gridview、瀑布流的效果,而且還可以設(shè)置橫向和縱向顯示
詳細(xì)使用:
// 前提:控件初始化
@BindView(R.id.make_small_recyclerView)
RecyclerView smallRecycleView;
// 設(shè)置布局管理
smallRecycleView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
// 這里是線性布局,方向水平,可以自定義布局實現(xiàn)復(fù)雜的展示~
// 設(shè)置adapter
smallAdapter = new ImageListShowAdapter(this,R.layout.list_iteam_imagelistshow,modelsArray);
smallRecycleView.setAdapter(smallAdapter);
// 更新數(shù)據(jù)
smallAdapter.notifyDataSetChanged();
// 刪除
modelsArray.remove(position);
smallAdapter.notifyDataSetChanged();
// 添加
modelsArray.add(0,imagePath);
smallAdapter.notifyDataSetChanged();
進階用法
// item 粘性
// item 添加/刪除 動畫
// 花式布局:圓形,方形,自定義形狀
// 滾動到指定position,帶自定義動畫