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就实现了。。。。。。。。。。。。。。。。。
转载请注明原文地址: https://ju.6miu.com/read-38061.html