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
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView 的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- CMD下请求UAC提权,而不需要右键以管理员模式运行
- 动态规划的基本思想与例子解析
- LintCode:线段树的构造 II
- 【JZOJ 3463】军训
- 敏捷软件开发(中篇)
- RecyclerView的简单使用
- FTP协议(指令集)
- Windows安装MySQL5.6
- 适配
- 敏捷软件开发(下篇)
- 易语言强行兼容高DPI源码
- Qt视频播放器开发无聊写个小项目
- spingmvc第二篇
- iOS创建framework