RecyclerView

来源:互联网 发布:ubuntu 查看cpu核数 编辑:程序博客网 时间:2024/06/05 18:56

那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。

  • 你想要控制其显示的方式,请通过布局管理器LayoutManager
  • 你想要控制Item间的间隔(可绘制),请通过ItemDecoration
  • 代码奉上,请参考
  • xml代码
  • <?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.g160828_android09_widetpusl.MainActivity">   <android.support.v7.widget.RecyclerView       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/rt_main_recyclerview"       ></android.support.v7.widget.RecyclerView></android.support.constraint.ConstraintLayout>

  • Java代码
  • package com.example.g160828_android09_widetpusl;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private RecyclerView rt_main_recyclerview;    private List date;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //得到控件的id        rt_main_recyclerview = (RecyclerView) findViewById(R.id.rt_main_recyclerview);        //拿到数据        date = new ArrayList<>();        for (int i = 0; i <= 10; i++) {            date.add("哈哈" + i);        }rt_main_recyclerview.setAdapter(new myadapter());        //设置排列方式        rt_main_recyclerview.setLayoutManager(new GridLayoutManager(this,3, GridLayoutManager.VERTICAL,false));    }    //    class myadapter extends RecyclerView.Adapter {        //类似于B        class myViewHolder extends RecyclerView.ViewHolder {            private TextView textView;            public myViewHolder(View itemView) {                super(itemView);                textView = itemView.findViewById(android.R.id.text1);            }        }        @Override        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            //转换xml为view            View view = getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null);            return new myViewHolder(view);        }        @Override        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {            myViewHolder myViewholder = (myadapter.myViewHolder) holder;            myViewholder.textView.setText((CharSequence) date.get(position));        }        @Override        public int getItemCount() {            return date.size();        }    }}

原创粉丝点击