Android开发之RecyclerView(一)初步使用

首先要感谢前面的大佬们的总结,给了我站在巨人肩膀上的机会。文中有不对的地方还望大佬指出,如有大佬觉的侵权的地方还望指出,鄙人将以最快速度修改!好了,话不多少了,开始开车!

第一步:导入RecyclerView

compile 'com.android.support:recyclerview-v7:26.+'
这里对于初次了解的人有一点要注意,v7包后面的版本号需要和
compile 'com.android.support:appcompat-v7:26.+'
保持一致,以免报错;
 
 
第二步:就是直接再布局中引用,和listview用法基本一样;
 
 
 
 
<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

第三步:在代码中调用,这里要注意了,由于 RecyclerView的灵活性,可以通过代码控制不同的展示样式,人狠话不多,直接粘代码,具体如下:

 
 
public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerview;
    private List<Map<String,Object>> list;
    private MyAdapter adapter;
    private LinearLayoutManager layoutManager;
    private GridLayoutManager gridLayoutManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
        list = getData();

        //创建默认的线性LayoutManager,样式类似于ListView
        layoutManager=new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        recyclerview.setLayoutManager(layoutManager);

        /*//创建默认的表格GridLayoutManager,样式类似于GridView,这里可以直接使用数字控制每行展示的列数
        gridLayoutManager=new GridLayoutManager(this,2);
        recyclerview.setLayoutManager(gridLayoutManager);*/

        //如果可以确定每个item的高度是固定的,设置这个选项可以提高性能
        recyclerview.setHasFixedSize(true);

        //创建并设置Adapter
        adapter = new MyAdapter(list);
        //adapter.addData(1);
        adapter.deleateData(20);
        recyclerview.setAdapter(adapter);
  
        //设置分隔线
        recyclerview.addItemDecoration(new DividerItemDecoration(this , DividerItemDecoration.HORIZONTAL));

        //设置增加或删除条目动画
        recyclerview.setItemAnimator(new DefaultItemAnimator());


    }

    public List<Map<String,Object>> getData() {
        list=new ArrayList<>();
        for (int i=0;i<21;i++){
            Map<String,Object> map= new HashMap<>();
            map.put("image",R.mipmap.ic_launcher);
            map.put("name","fuck");
            list.add(map);
        }
        return list;
    }

}
 
 
 
 
第四步,给RecyclerView创建adapter,就不废话了,直接粘贴代码

 
 
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
    private List<Map<String,Object>> list;

    public MyAdapter(List<Map<String,Object>>list) {
        this.list = list;
    }
	//给adapter添加布局加载
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.recyitem_layout,parent,false);
        ViewHolder vh=new ViewHolder(view);
        return vh;
    }


    public void onBindViewHolder(final ViewHolder holder,final int position) {

	//使用adapter里面的控价进行展示操作

        holder.iv_show.setImageResource(R.mipmap.ic_launcher);
        holder.tv_show.setText("基佬");

    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder{
        TextView tv_show;
        ImageView iv_show;
        public ViewHolder(View itemView) {
            super(itemView);

            tv_show=itemView.findViewById(R.id.tv_show);
            iv_show=itemView.findViewById(R.id.iv_show);
        }
    }

   
第五步;展示adapter
 
 
 
 
	//创建并设置Adapter
	adapter = new MyAdapter(list);
	//adapter.addData(1);
	adapter.deleateData(20);
	recyclerview.setAdapter(adapter);

 
 
本期结束,第一次写博客,有错误和不足请多多包涵,谢谢!
下一期Android开发之RecyclerView(二)同一控价多样式布局
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/baidu_36600645/article/details/78721751