在studio中导入依赖包
com.android.support:recyclerview-v7:26.0.0-alpha1
并把recyclerview的版本改成同你版本适用的
接下来布局中引入android.support.v7.widget.RecyclerView
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.day2recyclerand.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> </RelativeLayout>接下来就是主Activity了,里面还做了接口回调随着技术的提升,recycle逐渐代替了listview和GridView,其优点可操控性较大,宽高调整方便,页面更加美观,package com.example.day2recyclerand; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { RecyclerView rv; List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } //初始化视图 private void initView() { rv= (RecyclerView) findViewById(R.id.rv); list=new ArrayList<String>(); }//初始化数据源//创建一个假的数据源,0~100; public void initData(){ for (int i = 0; i < 100; i++) { list.add("postion"+i); }//设置一个recycle数据展示的方向 LinearLayoutManager manager=new LinearLayoutManager(this); rv.setLayoutManager(manager);//设置适配器 myAdapter adapter=new myAdapter(); rv.setAdapter(adapter);//接口回调的方法并吐司 adapter.setOnItemClickListener(new OnItemClickListener() { @Override public void OnItemClick(int postion) { Toast.makeText(MainActivity.this,"postion"+postion,Toast.LENGTH_SHORT).show(); } }); }//创建适配器 class myAdapter extends RecyclerView.Adapter<myAdapter.ViewHolder>{ OnItemClickListener listener; public void setOnItemClickListener(OnItemClickListener listener){ this.listener=listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v=View.inflate(MainActivity.this,R.layout.rv_item,null); //第一种点击取值 // v.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View view) { // if(listener!=null){ // listener.OnItemClick((int)view.getTag()); // }else{ // Toast.makeText(MainActivity.this,"listener空了",Toast.LENGTH_SHORT).show(); // } // // } // }); return new ViewHolder(v); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { holder.tv.setText(list.get(position)); // holder.itemView.setTag(position); //第二种点击取值 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int pos=holder.getPosition(); listener.OnItemClick(pos); } }); } @Override public int getItemCount() { return list==null?0:list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { TextView tv; public ViewHolder(View itemView) { super(itemView); tv=itemView.findViewById(R.id.tv); } } }//设置接口 public interface OnItemClickListener{ public void OnItemClick(int postion); } }//简单简绍:
缺点就是没有setHeadView,还的自己定义,这点比较麻烦一点,
整体来说recycle是比较方便用于开发的;
只是自己的一点简单理解,如有错误之处,还请大神们不吝赐教;