创建RecycleView的步骤:
在Layout中创建RecycleView
创建List Item 和 ViewHolder
添加RecycleView 适配器
添加LayoutManager 和 将所有事情连接起来。
练习一:RecycleView 布局
第一 步:在app/build.gradle(Module:app)文件中添加依赖
dependencies { compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) compile ‘com.android.support:appcompat-v7:25.1.0‘ // TODO (1) Add RecyclerView dependency compile ‘com.android.support:recyclerview-v7:25.1.0‘ }
第二步: 添加RecycleView到布局中
<!--TODO (2) Replace the TextView with a RecyclerView with an id of "@+id/rv_numbers"--> <!--TODO (3) Make the width and height of the RecyclerView match_parent--> <android.support.v7.widget.RecyclerView android:id="@+id/rv_numbers" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView>
练习二:使用ViewHolder
1. 在app/res/layout/目录下新建number_list_item.xml文件
// number_list_item.xml<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" > <TextView android:id="@+id/tv_item_number" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TextAppearance.AppCompat.Title" android:textSize="42sp" android:fontFamily="monospace" /> </FrameLayout>
2. 添加 NumberViewHolder 类
class NumberViewHolder extends RecyclerView.ViewHolder { private TextView listItemNumberView; public NumberViewHolder(View itemView) { super(itemView); listItemNumberView = (TextView) itemView.findViewById(R.id.tv_item_number); void bind(int listIndex) { listItemNumberView.setText(String.valueOf(listIndex)); } } }
练习三:Adapter 适配器
适配器要求我们重写三个函数:
onCreateViewHolder() 在RecylclerView 实例化一个新的ViewHolder实例时调用
onBindViewHolder() 在RecyclerView 想要让用户使用他时调用
getItemCount() 它返回数据源中的个数
过程:
当RecyclerView已经初始化后,他会首先询问Adapter将要显示的项目个数
然后RecyclerView会要求适配器创建ViewHolder对象 在这个过程调用 onCreateViewHolder() 使用相应的xml来绘制
onCreateViewHolder() 函数负责创建视图,在创建好每个viewHolder之后,RecyclerView将调用onBindViewHolder()来为每个项目填充数据
练习:创建Adapter
时间: 2024-11-05 06:25:44