RecyclerView 介绍01

RecyclerView是Android support v7里面是一个自定义控件。用来显示大量数据集合。类似ListView和GridView这两个控件,RecyclerView同样可以实现,甚至更好。

以前我们在实现ListView和GridView的时候,都会定义一个ViewHolder用于优化UI性能【详见】,RecycleView的实现,已经是自带ViewHolder的实现。请看示例。

  1. 实现Adapter,定义每个Item的布局UI和数据。

    ?

    1. public
      class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.ViewHolder> {
    2. ?
    3. ????private List<String> mDatas = new ArrayList<>(0);
    4. ?
    5. ????public MyRecyclerAdapter(List<String> datas) {
    6. ????????if (datas != null) {
    7. ????????????mDatas.addAll(datas);
    8. ????????}
    9. ????}
    10. ?
    11. ????public
      static
      final
      class ViewHolder extends RecyclerView.ViewHolder {
    12. ?
    13. ????????private
      final TextView textView;
    14. ????????private
      final Button button;
    15. ?
    16. ?
    17. ????????public ViewHolder(View itemView) {
    18. ????????????super(itemView);
    19. ????????????textView = (TextView) itemView.findViewById(R.id.item_text);
    20. ????????????button = (Button) itemView.findViewById(R.id.item_button);
    21. ????????????button.setOnClickListener(new View.OnClickListener() {
    22. ?
    23. [email protected]
    24. ????????????????public
      void onClick(View v) {
    25. ????????????????????Toast.makeText(v.getContext(), String.valueOf(getPosition()), Toast.LENGTH_SHORT).show();
    26. ????????????????}
    27. ????????????});
    28. ????????}
    29. ?
    30. ????????public TextView getTextView() {
    31. ????????????return textView;
    32. ????????}
    33. ?
    34. ????????public Button getButton() {
    35. ????????????return button;
    36. ????????}
    37. ????}
    38. ?
    39. [email protected]
    40. ????public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    41. ????????View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, null);
    42. ????????return
      new ViewHolder(view);
    43. ????}
    44. ?
    45. [email protected]
    46. ????public
      void onBindViewHolder(ViewHolder holder, int position) {
    47. ????????holder.getButton().setText(String.valueOf(position));
    48. ????????holder.getTextView().setText(mDatas.get(position));
    49. ????}
    50. ?
    51. [email protected]
    52. ????public
      int getItemCount() {
    53. ????????return mDatas.size();
    54. ????}
    55. ?
    56. }

    ?

  2. 初始化RecyclerView

    设置Adapter和LayoutManager。LayoutManager定义了每个Item的排列形式。官方提供两种实现,LinearLayoutManager和GridLayoutManager,当然我们也可以根据需求,自己实现LayoutManager。

    1. recyclerView = (RecyclerView) findViewById(R.id.recycler);
    2. MyRecyclerAdapter adapter = new MyRecyclerAdapter(Datas.getDatas(1000));
    3. RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
    4. recyclerView.setLayoutManager(layoutManager);
    5. recyclerView.setAdapter(adapter);

RecyclerView就是这么简单。

时间: 2024-10-22 13:51:24

RecyclerView 介绍01的相关文章

JavaOO-03【EditPlus工具介绍、基本数据类型介绍01】

转载请标明,http://www.gxabase.com 视频内容:本节主要详细介绍编写Java程序的工具-EditPlus如何应用,如何利用EditPlus工具去编译和运行Java程序.接着介绍Java程序的编码规范,如何定义方法名/变量名/类名的规范.最后为大家介绍Java八大基本数据类型的应用. JavaOO-03[EditPlus工具介绍.基本数据类型介绍01],码迷,mamicode.com

RecyclerView 介绍 基本使用

介绍 文档位置:https://developer.android.google.cn/reference/android/support/v7/widget/RecyclerView.html A flexible view for providing a limited window into a large data set. RecylerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字rec

Android新组件RecyclerView介绍,其效率更好

今天我们首先来说为什么要介绍这个新组件RecyclerView,因为前几天我发布了一个常用面试题ListView的复用及如何优化的文章,介绍给一些开发者,但是我看到有关的反馈说:现在都不再用listview了,代替的是RecyclerView,确实是,但是用的毕竟是少数,所以可能很多人对于这个组件不是很了解,那么我们就来介绍一下吧! 1.什么是RecyclerView RecyclerView 是 android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是

XenMobile 9.0完全部署指南之架构介绍--01

从12年12月Citrix 收购Zenprise到现在,Citrix推出移动设备管理解决方案也已经过去了2年半的时间了,在这两年半的时间中Citrix现有推出了XenMobile 8.6,XenMobile9.0,以及最新的XenMobile10.0 这不仅标志着Citrix对其自身打造WorkSpace移动办公空间的全方位解决方案交付,也标志着人们对移动端越来越依赖的BYOD趋势. 在此次系列博文中,我以XenMobile9.0为蓝本进行XenMobile的功能介绍与安装.部署,10.0虽然将

python中itertools模块介绍---01

itertools模块中包含了很多函数,这些函数最终都生成一个或多个迭代器,下面对这些函数进行介绍: 为了能够使用itertools中的函数,需要将该模块导入: >>>from itertools import * count(start=0,step=1): 源代码为: def count(start=0,step=1):     n=start     while True:         yield n         n+=step 从源代码可以看出,count函数产生一个生成

RecyclerView 介绍 02 – 重要概念

几个概念 RecyclerView是一个ViewGroup: LayoutManager控制RecyclerView的ChildView的布局显示,childview由Recycler提供以及管理: Recycler具有两级缓存,Scrap和RecycledViewPool,通过Detach以及Remove,对Viewholder进行转移以及状态改变: RecycledViewPool可以由多个RecyclerView共享: ViewHolder具有多种状态标记: 关于Recycler Scra

Lifeline功能介绍01——日历及时间轴的查看

"Lifeline功能介绍"系列博客主要介绍目前为止已经实现的网站功能,包括:日历及时间轴的查看.个人事件的添加.课堂信息的查询等. 本篇介绍--日历及时间轴的查看 #用户登陆后会进入主页界面,为日历上对事件的动态显示,如图1 图1 在日历上已经过去的事项会显示为灰色,未结束的事件为彩色:而且可以通过右下角的下拉选项切换多种语言的日历风格. #点击右上角的选项,可以将日历模式的显示,切换为列表显示,如图2 图2 此界面同样支持事件的动态显示和多种语言风格的切换. #点击日历或者列表中的

shell-脚本概念介绍01

shell:脚本慨念介绍 1.shell脚本简介 在解释shell脚本这个名词之前,我们先来说下什么是shell 1.1.什么是shell shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户.这种对话方式可以是交互的方式(从键盘输入命令,可以立即得到shell的回应),或非交互(脚本)的方式. 下面的图中×××部分就是命令解释器shell处于的操作系统中的位置.提示: shell英文是贝壳的意

Android Interface(UI) 界面控件简单介绍01

1.TextView:显示文本 常用的属性设置:android:textIsSelectable="true" 设置文本内容可选(触发系统的复制粘贴功能)android:drawableLeft="@mipmap/ic_launcher" 设置文本内容的图标其它包括drawableRight, drawableTop, drawableBottom, drawableStart, drawableEndandroid:text="Hello World!&