RecyclerView的基本骚操作
RecyclerView这个控件很骚气的,它结合实现了ListView(线型布局(只能做垂直布局))、和GridView(网格布局)的功能特点,同时还添加了瀑布流布局,还优化了ListView的不足,添加了横向布局, 学起来一点也不难,好用又好学,Very Good,哈哈,当你学会使用它的时候什么ListView、GridView它都能做!666的,现在做android开发的不会RecyclerView的都不敢出门,噗。。。。 哈哈哈

看操作看操作......嘿嘿!
1.基本操作(使用前需要在app下的gradle中添加依赖):
implementation 'com.android.support:recyclerview-v7:26.1.0'
2.在需要使用的XML中添加以下RecyclerView布局代码:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recycler_view">
</android.support.v7.widget.RecyclerView>
3.然后在activity中获取RecyclerView,并设置LayoutManager(线型)以及adapter:
//1.获取RecyclerView实例 RecyclerView recyclerView=(RecyclerView)findViewById(R.id.recycler_view); //2.设置RecyclerView管理器,LinearLayoutManager:线型布局; //RecyclerView的管理器有三种:LinearLayoutManager(线型布局:线性布局可以设置垂直和水平) 、 // GridlayoutManager(网格布局)、 // StaggeredGridlayoutManager(瀑布流布局) LinearLayoutManager manager=new LinearLayoutManager(this); //管理器使用.setOrientation()方法来设置垂直水平方向(如果不设置则默认是垂直的); //manager.setOrientation(LinearLayoutManager.HORIZONTAL);//水平布局 //manager.setOrientation(LinearLayoutManager.VERTICAL);//垂直布局 recyclerView.setLayoutManager(manager);//设置RecyclerView布局 //3.设置Adapter适配器 FruitAdapter adapter=new FruitAdapter(this,mFruitList); recyclerView.setAdapter(adapter);

4设置网格布局和瀑布流布局:
//网格布局 //第一个参数是context上下文,第二个参数是列的个数,传3就是三列 GridLayoutManager gridLayoutManager=new GridLayoutManager(this,3); recyclerView.setLayoutManager(gridLayoutManager);//设置RecyclerView布局 //设置Adapter适配器 FruitAdapter adapter=new FruitAdapter(this,mFruitList); recyclerView.setAdapter(adapter);//瀑布流布局 //第一个参数是列的个数,第二个参数是布局的方向(水平、垂直) StaggeredGridLayoutManager staggeredGridLayoutManager= new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL); recyclerView.setLayoutManager(staggeredGridLayoutManager);//设置RecyclerView布局 //设置Adapter适配器 FruitAdapter adapter=new FruitAdapter(this,mFruitList); recyclerView.setAdapter(adapter);
5.FruitAdapter适配器类:
public class FruitAdapter extends RecyclerView.Adapter <FruitAdapter.ViewHolder>{
private List<Image> mFruitList;
private Context context;
public FruitAdapter(Context context,List<Image> mFruitList){
this.context=context;
this.mFruitList=mFruitList;//数据源
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//加载item布局 创建ViewHolder的实例
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_one,parent,false);
ViewHolder holder=new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
//给item控件赋值
Image image=mFruitList.get(position);
holder.imageView.setImageResource(image.getImageId());
holder.textView.setText(image.getText());
}
/**
*
* @return:返回item项的个数
*/
@Override
public int getItemCount() {
return mFruitList.size();
}
/**
* 持有者类
*/
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView textView;
public ViewHolder(View itemView) {
super(itemView);
imageView=(ImageView)itemView.findViewById(R.id.imageView);
textView=(TextView)itemView.findViewById(R.id.textView);
}
}
}
ok,就是这么简单粗暴。。

我也是小白,对于RecyclerView的底层还是有待了解的,只是会用,嘿嘿,有什么错误的地方还请大佬指出,3Q!
本文详细介绍如何使用RecyclerView实现线型、网格及瀑布流布局,并提供基本的适配器编写方法。
2395

被折叠的 条评论
为什么被折叠?



