RecyclerView(類似iOS 的collectionView)

RecyclerView 簡單介紹

RecyclerView只負責回收和重用的工作,所有關(guān)于布局、繪制和其他相關(guān)的問題,也就是跟數(shù)據(jù)展示相關(guān)的所有問題,都被委派給了一些”插件化”的類來處理。

以下是RecyclerView中用于數(shù)據(jù)展示的一些重要的類,他們都是RecyclerView的內(nèi)部類:

  • Adapter:包裝數(shù)據(jù)集合并且為每個條目創(chuàng)建視圖。
  • ViewHolder:保存用于顯示每個數(shù)據(jù)條目的子View。
  • LayoutManager:將每個條目的視圖放置于適當?shù)奈恢谩?/li>
  • ItemDecoration:在每個條目的視圖的周圍或上面繪制一些裝飾視圖。
  • ItemAnimator:在條目被添加、移除或者重排序時添加動畫效果。

RecyclerView是谷歌V7包下新增的控件,用來替代ListView的使用,在RecyclerView標準化了ViewHolder類似于ListView中convertView用來做視圖緩存

布局管理:設(shè)置LayoutManager

使用場景:通過設(shè)置LayoutManager來快速實現(xiàn)listview、gridview、瀑布流的效果,而且還可以設(shè)置橫向和縱向顯示

詳細使用:

butterknife鏈接

// 前提:控件初始化
    @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,帶自定義動畫
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容