简单的RecycerView

来源:互联网 发布:面试淘宝美工常见问题 编辑:程序博客网 时间:2024/04/30 03:58

1.为什么要选择RecycerView

        一般情况下我们会用listview比较多,但是listview在一些情况无法满足我们的需求,或者说在某些情况下
       不适合我们的快速开发!!从两者的适配器的编写中可以看出,recycerview更简单的。

       不说那么多,这次我们来简单体验一下recycerview


2.RecycerView的简单实现


   1.首先我们得把库引入我们的项目中

   
 compile 'com.android.support:recyclerview-v7:23.1.1'
 
  2.我们的布局,分两个:一个是主页面上的布局,另一个是我们列表页布局
  主页面布局:

  <?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.com.wechart.Activity.MainActivity"    >     <android.support.v7.widget.RecyclerView         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/RecycerView_main"         >     </android.support.v7.widget.RecyclerView>  </LinearLayout>

  
  列表页布局:
  <?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="60dp"    android:orientation="horizontal"    android:background="@color/blue"    >   <ImageView       android:layout_width="40dp"       android:layout_height="40dp"       android:id="@+id/top_tool_img"       android:layout_margin="10dp"       android:src="@drawable/major"       />  <TextView      android:id="@+id/top_tool_txt"      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:gravity="center"      android:layout_gravity="center"      android:text="@string/top_tool_txt"    />  </LinearLayout>

  3.我们的适配器也是重点的重点
   
package com.example.com.wechart.Activity.Adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.example.com.wechart.R;import java.util.List;/** * Created by 廖成康 on 2017/3/12. */public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.ViewHolder>{    private LayoutInflater inflater;    private List<Integer> imgData;    private List<String> txtData;    public GalleryAdapter(List<Integer> imgData, List<String> txtData, Context context)    {        this.imgData = imgData;        this.txtData = txtData;        this.inflater=LayoutInflater.from(context);    }    /*    * 创建viewholder    *    * */    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)    {        View view=inflater.inflate(R.layout.reclycview_layout,parent,false);        ViewHolder viewHolder=new ViewHolder(view);        viewHolder.id_index_gallery_item_image= (ImageView) view.findViewById(R.id.id_index_gallery_item_image);        viewHolder.id_index_gallery_item_text= (TextView) view.findViewById(R.id.id_index_gallery_item_text);        return viewHolder;    }    /*    * 操控控件    *    * */    @Override    public void onBindViewHolder(ViewHolder holder, int position)    {        holder.id_index_gallery_item_image.setImageResource(imgData.get(position));        holder.id_index_gallery_item_text.setText(txtData.get(position));    }    /*    * reclyerview    * 数目    *    * */    @Override    public int getItemCount()    {        return imgData==null?0:imgData.size();    }    /*    * 定义控件    *    * */    public  static class ViewHolder extends RecyclerView.ViewHolder    {        public ViewHolder(View itemView)        {            super(itemView);        }        ImageView id_index_gallery_item_image;        TextView id_index_gallery_item_text;    }}
  4.我们主Activity上的数据添加和RecyclerView上布局的设置
package com.example.com.wechart.Activity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.widget.LinearLayout;import com.example.com.wechart.Activity.Adapter.GalleryAdapter;import com.example.com.wechart.R;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity{    private List<Integer> imgData=new ArrayList<>();    private List<String> txtData=new ArrayList<>();    private RecyclerView recyclerView;    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        recyclerView= (RecyclerView) findViewById(R.id.RecycerView_main);        addList();        LinearLayoutManager manager=new LinearLayoutManager(this);        manager.setOrientation(LinearLayout.HORIZONTAL);        recyclerView.setLayoutManager(manager);        recyclerView.setAdapter(new GalleryAdapter(imgData,txtData,this));    }    /*    * 添加控件信息    *    * */    private void addList()    {        txtData.add("1");        txtData.add("2");        txtData.add("3");        txtData.add("4");        txtData.add("5");        imgData.add(R.drawable.btn_img_one);        imgData.add(R.drawable.btn_img_two);        imgData.add(R.drawable.major);        imgData.add(R.drawable.message);        imgData.add(R.drawable.message);    }}

OK,基本上简单的Recycerview就实现了。。。。。。。。。。。。。。。。。
0 0