简单的RecycerView

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值