RecyclerView的简单使用

来源:互联网 发布:不需要备案的国外域名 编辑:程序博客网 时间:2024/05/22 09:48
</pre><pre name="code" class="java">
</pre><pre name="code" class="java"><pre style="font-family: Consolas; font-size: 13.5pt; background-color: rgb(255, 255, 255);">compile <span style="color:#008000;"><strong>'com.android.support:recyclerview-v7:23.1.1'</strong></span>

package com.example.administrator.app2;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * RecyclerView 是Android 版本中新添加的一个用来取代ListView、GridView的SDK, * 高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager, * ItemDecoration , ItemAnimator实现不同的效果。 */public class MainActivity extends AppCompatActivity {    private RecyclerView recyclerView;    private List<YYY> yyys;    private List<String> mnks;    private static final int COUNT = 100;    private int[] image1_id = {R.mipmap.aa1, R.mipmap.aa2, R.mipmap.aa22, R.mipmap.aa3, R.mipmap.aa33,            R.mipmap.aa4, R.mipmap.aa44, R.mipmap.aa5, R.mipmap.aa55, R.mipmap.aaaa};    private int[] image2_id = {R.mipmap.bb1, R.mipmap.bb10, R.mipmap.bb11, R.mipmap.bb12, R.mipmap.bb13,            R.mipmap.bb14, R.mipmap.bb15, R.mipmap.bb16, R.mipmap.bb17, R.mipmap.bb18, R.mipmap.bb2jpg, R.mipmap.bb3,            R.mipmap.bb4, R.mipmap.bb5, R.mipmap.bb6, R.mipmap.bb7, R.mipmap.bb8, R.mipmap.bb9,};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);        initData();        //设置布局管理器(线性布局效果)        //参数1:上下文   参数2:线性布局的方向   参数3:是否反转(从下到上,倒过来显示)         //recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,true));        //网格布局效果       参数2:每一行显示的View对象数量(View对象的宽和高都不能设置)        //recyclerView.setLayoutManager(new GridLayoutManager(this, 4));        //瀑布流效果     参数1:每一行显示多少布局(View对象)        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL));        recyclerView.setAdapter(new DemoAdapter());    }    private void initData() {        if (yyys == null || yyys.size() == 0) {            yyys = new ArrayList<YYY>();        }        for (int i = 0; i < COUNT; i++) {            yyys.add(new YYY((i + 21), "杨钰莹" + (i + 1) + "号 "));        }    }    //RecyclerView的适配器(泛型,RecyclerView打包类的子类)    class DemoAdapter extends RecyclerView.Adapter<ViewHolder> {        @Override        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            //把一个布局转化成一个View对象的时候 不会把布局最顶层的控件的参数赋值给当前View            //View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itme1, null);            //把一个布局转化成一个View对象的时候 会把布局最顶层的布局控件的参数复制给当前View(在界面显示效果)            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itme1, parent, false);            return new ViewHolder(view);//返回控件打包类的对象(把当前创建的View对象传过去)        }        @Override        public void onBindViewHolder(ViewHolder holder, int position) {            holder.itme1_name.setText(yyys.get(position).name);            holder.itme1_age.setText(yyys.get(position).age + "");            //LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。            //LayoutParams继承于Android.View.ViewGroup.LayoutParams            //网格效果,宽和高都不能设置,否则报错           // ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();            //layoutParams.height = 180;            //layoutParams.width = 30;            //holder.itemView.setLayoutParams(layoutParams);//获得布局对象,设置          /*  if (position % 4 == 0) {                holder.itemView.setBackgroundColor(Color.RED);            } else if(position%4==3){                holder.itemView.setBackgroundColor(Color.YELLOW);            }else if(position%4==2){                holder.itemView.setBackgroundColor(Color.BLUE);            }else if(position%4==1){                holder.itemView.setBackgroundColor(Color.GREEN);            }*/           if (position % 2 == 0) {//设置瀑布流的效果                //设置View的高度和背景颜色                ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();                layoutParams.height = 80;                //layoutParams.width=120;  设置宽度无效                holder.itemView.setLayoutParams(layoutParams);                holder.itemView.setBackgroundColor(Color.RED);            } else {                ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();                layoutParams.height = 120;                //layoutParams.width=30;                holder.itemView.setLayoutParams(layoutParams);                holder.itemView.setBackgroundColor(Color.BLUE);            }        }        @Override        public int getItemCount() {            return yyys.size();        }    }    //继承RecyclerView的控件打包类    class ViewHolder extends RecyclerView.ViewHolder {        public TextView itme1_name, itme1_age;        public ViewHolder(View itemView) {            super(itemView);            //找出控件            itme1_name = (TextView) itemView.findViewById(R.id.itme1_name);            itme1_age = (TextView) itemView.findViewById(R.id.itme1_age);        }    }}
</pre><pre name="code" class="java">


1 0
原创粉丝点击