赞
踩
RecyclerView是一个高级的SrollView,我以前是这么理解的,准确的来说它是ListView的plus版。
(源代码来自优达学城练习题+作者手写)
和ListView一样少不了适配器,并且要在适配器中实现ViewHolder,item的View对象将在这里(ViewGroup)实例化。
*适配器需要重写三个方法*
1.onCreateViewHolder
创建ViewHolder,指定一个将被填充的ViewGroup,和int类型参数来说明layout的种类.
public NumberViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
Context context = viewGroup.getContext();//用于创建填充器
int layoutIdForListItem = R.layout.number_list_item;//获得Item的ID
LayoutInflater inflater = LayoutInflater.from(context);//创建填充器
boolean shouldAttachToParentImmediately = false;
//通过填充器创建View对象,(子类的id,父类对象,)
View view = inflater.inflate(layoutIdForListItem, viewGroup, shouldAttachToParentImmediately);
NumberViewHolder viewHolder = new NumberViewHolder(view);
return viewHolder;
}
2.onBindViewHolder
调用ViewHolder中的bind方法
public void onBindViewHolder(NumberViewHolder holder, int position)
{
Log.d(TAG, "#" + position);
holder.bind(position);
}
3.getItemCount
public int getItemCount() {
return mNumberItems;
}
*此方法返回要显示的项目数。 它被系统后台使用
*帮助布局。
*
* @return我们的预测中可用的项目数
=============================================================================
ViewHolder部分
用于实例化Item,在构造方法中创建。
============================================================================
最后一步,需要我们在Acitivity中进行最后的操作
1.实例化RecyclerView,Adapter
2.为RecyclerView设置布局管理器
3.将适配器绑定到RecyclerView
4.UI优化
`
setHasFixedSize(true);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。