Android7.0RecyclerView用法解析

来源:互联网 发布:网络摄像头修改密码 编辑:程序博客网 时间:2024/06/11 09:27

RecyclerView 是ListView的增强版,优化了ListView的一些内存,样式问题。

基本用法

1.在app/build.gradle文件中加入

dependencies{    compile 'com.android.support:recycleview-v7:24.2.1'}

2.点击Sync Now 同步一下

3.在xml文件中调用

<android.suppoert.v7.widget.RecyclerView    android:id="@+id/recycle"    android:layout_width="match_parent"    android:layout_height="match_parent"/>

4.内容类(适配器)

package com.treeanimals.max.tecent;import android.media.Image;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.ListView;import android.widget.TextView;import java.util.List;import ll.aidl.*;/** * Created by 95112 on 9/7/2017. */public class BookAdapter extends RecyclerView.Adapter<BookAdapter.ViewHolder> {//首先新建一个 Adaper类,继承RecyclerView.Adapter    private List<Book> bookList;//内容类列表    public class ViewHolder extends RecyclerView.ViewHolder//定义了一个内部类 ViewHolder {        ImageView bookImage;        TextView bookName;        public ViewHolder(View itemView) { //ViewHolder的构造参数需要传入一个View参数,这个布局包含ImageView和 TextView            super(itemView);            bookImage = (ImageView) itemView.findViewById(R.id.bookImage);            bookName = (TextView)itemView.findViewById(R.id.bookName);        }    }    public BookAdapter(List<Book> bookList)    {//BookAdapter 构造传递函数需要传递一个 list        this.bookList = bookList;    }    //然后重写 onCreateBiewHolder(),onBindViewHolder() 和getItemCount()三个方法    //onCreateViewHolder用于创建BiewHolder实例    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.book_layout,parent,false);        ViewHolder viewHolder = new ViewHolder(view);        return viewHolder;    }//onBindViewHolder用于对RecyclerView子项进行复制,会在每个子项被滚动到屏幕内的时候执行。    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        Book book = bookList.get(position);        holder.bookImage.setImageResource(book.getImageId());        holder.bookName.setText(book.getName());    }//告诉RecyclerView一共有多少子项。    @Override    public int getItemCount() {        return bookList.size();    }}

5.使用

package com.treeanimals.max.tecent;import android.app.Activity;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.widget.ListView;import java.util.ArrayList;import java.util.List;/** * Created by 95112 on 9/7/2017. */public class RecycleActivity extends Activity {    private List<Book> bookList = new ArrayList<>();    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initBook();        RecyclerView recyclerView = (RecyclerView)findViewById(R.id.recyclerview);        LinearLayoutManager layoutManager = new LinearLayoutManager(this);        recyclerView.setLayoutManager(layoutManager);        BookAdapter adapter = new BookAdapter(bookList);        recyclerView.setAdapter(adapter);    }    private void initBook() {        Book book1 = new Book("《如何成为技术大牛》",R.drawable.ic_dashboard_black_24dp);        bookList.add(book1);        Book book2 = new Book("《如何成为技术大牛》",R.drawable.ic_dashboard_black_24dp);        bookList.add(book2);        Book book3 = new Book("《如何成为技术大牛》",R.drawable.ic_dashboard_black_24dp);        bookList.add(book3);    }}
原创粉丝点击