RecycleView初识

来源:互联网 发布:linux ant命令行 编辑:程序博客网 时间:2024/04/27 18:02

RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来,用户只要实现自己的viewholder就可以了,该组件会自动帮你回收复用每一个item。

它不但变得更精简,也变得更加容易使用,而且更容易组合设计出自己需要的滑动布局。

RecycleView的简单实用

第一步:添加jar支持



第二步:声明xMl控件

<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">   <android.support.v7.widget.RecyclerView       android:id="@+id/recycle_view_0"       android:layout_width="match_parent"       android:layout_height="match_parent"       /></RelativeLayout>


第三步:RecyView的使用

  1:设置LayoutManager

  2:设置Adapter 包括ViewHolder


package com.example.xuan.recycleview_demo;import android.app.Activity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class MainActivity extends Activity {    RecyclerView recyclerView;    RecyclerView.LayoutManager mLayoutManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        recyclerView= (RecyclerView) findViewById(R.id.recycle_view_0);        recyclerView.setHasFixedSize(true);//固定大小        mLayoutManager=new LinearLayoutManager(this);        recyclerView.setLayoutManager(mLayoutManager);        recyclerView.setAdapter(new MyAdapter());    }    class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>    {        @Override        public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {            return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_pick,null));        }        @Override        public void onBindViewHolder(ViewHolder viewHolder, int i) {            viewHolder.tv_group.setText("数据:"+i);        }        @Override        public int getItemCount() {            return 50;        }        class ViewHolder extends RecyclerView.ViewHolder        {            public TextView tv_group;            public ViewHolder(View itemView) {                super(itemView);                tv_group= (TextView) itemView.findViewById(R.id.tv_group);            }        }    }}




0 0