线性显示 类似于listview:

线性宫格显示 类似于grid view:

用线性宫格显示 类似于瀑布流:

结构图:

测试代码:

activity_main.xml:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" >
  5.  
  6. <android.support.v7.widget.RecyclerView
  7. android:id="@+id/recycler_view"
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"
  10. android:layout_centerHorizontal="true"
  11. android:layout_centerVertical="true" />
  12.  
  13. </RelativeLayout>

activity_main.xml

MainActivity.java:

  1. package com.zzw.testrecyclerview;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.support.v7.widget.GridLayoutManager;
  6. import android.support.v7.widget.LinearLayoutManager;
  7. import android.support.v7.widget.OrientationHelper;
  8. import android.support.v7.widget.RecyclerView;
  9. import android.support.v7.widget.RecyclerView.Adapter;
  10. import android.support.v7.widget.StaggeredGridLayoutManager;
  11. import android.widget.TextView;
  12.  
  13. public class MainActivity extends Activity {
  14.  
  15. RecyclerView mRecyclerView;
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21.  
  22. String[] mTitles = new String[100];
  23.  
  24. for (int i = 0; i < 99; i++) {
  25. mTitles[i] = "测试数据" + i;
  26. }
  27.  
  28. mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
  29.  
  30. // 这里用线性显示 类似于listview
  31. // mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  32.  
  33. // 这里用线性宫格显示 类似于grid view
  34. // mRecyclerView.setLayoutManager(new GridLayoutManager(this,3));
  35.  
  36. // 这里用线性宫格显示 类似于瀑布流
  37. mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,
  38. OrientationHelper.VERTICAL));
  39.  
  40. NormalRecyclerViewAdapter adapter = new NormalRecyclerViewAdapter(this,
  41. android.R.layout.simple_list_item_1, mTitles);
  42.  
  43. mRecyclerView.setAdapter(adapter);
  44. }
  45.  
  46. }

NormalRecyclerViewAdapter.java:

  1. package com.zzw.testrecyclerview;
  2.  
  3. import android.content.Context;
  4. import android.support.v7.widget.RecyclerView.Adapter;
  5. import android.support.v7.widget.RecyclerView.ViewHolder;
  6. import android.util.Log;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.view.ViewGroup;
  11. import android.widget.TextView;
  12.  
  13. public class NormalRecyclerViewAdapter extends
  14. Adapter<NormalRecyclerViewAdapter.NormalTextViewHolder> {
  15. private final LayoutInflater mLayoutInflater;
  16. private final Context mContext;
  17. private String[] mTitles;
  18.  
  19. public NormalRecyclerViewAdapter(Context context, int item_id,
  20. String[] Titles) {
  21. mContext = context;
  22. mTitles = Titles;
  23. mLayoutInflater = LayoutInflater.from(context);
  24. }
  25.  
  26. @Override
  27. public int getItemCount() {
  28.  
  29. return mTitles == null ? 0 : mTitles.length;
  30. }
  31.  
  32. @Override
  33. public NormalTextViewHolder onCreateViewHolder(ViewGroup arg0, int arg1) {
  34.  
  35. return new NormalTextViewHolder(mLayoutInflater.inflate(
  36. android.R.layout.simple_list_item_1, null));
  37. }
  38.  
  39. @Override
  40. public void onBindViewHolder(NormalTextViewHolder holder, int position) {
  41. holder.mTextView.setText(mTitles[position]);
  42. }
  43.  
  44. public static class NormalTextViewHolder extends ViewHolder {
  45.  
  46. TextView mTextView;
  47.  
  48. public NormalTextViewHolder(View view) {
  49. super(view);
  50. mTextView=(TextView) view.findViewById(android.R.id.text1);
  51. view.setOnClickListener(new OnClickListener() {
  52.  
  53. @Override
  54. public void onClick(View v) {
  55. Log.d("NormalTextViewHolder", "onClick--> position = "
  56. + getPosition());
  57. }
  58. });
  59. }
  60. }
  61. }

相关问题解决:

使用android.support.v7.widget.RecyclerView出现 java.lang.reflect.InvocationTargetException:http://www.cnblogs.com/zzw1994/p/5004564.html

RecyclerView的基本创建的更多相关文章

  1. Android之RecyclerView(一)

    概述 RecyclerView 是一个 ViewGroup,它用于渲染任何基于适配器的 View.它被官方定义为 ListView 和 GridView 的取代者,是在 Support V7 包中引入 ...

  2. Android RecyclerView的基本使用

    Android RecyclerView 在去年的Google I/O大会上就推出来了,以前经常使用的ListView 继承的是AbsListView,而RecyclerView则直接继承 ViewG ...

  3. 使用 RecyclerView

    使用 RecyclerView android RecyclerView tutorial 概述 与 ListView 的对比 RecyclerView 的组件 LayoutManager Recyc ...

  4. 似曾相识的 RecyclerView

    一.常用方法 RecyclerView 与 ListView.GridView 类似,都是可以显示同一种类型 View 的集合的控件. 首先看看最简单的用法,四步走: ①接入 build.gradle ...

  5. RecyclerView全面解析

    写在前面 起深入浅出这名字的时候我是慎重又慎重的,生怕被人骂标题党,写的什么破玩意还敢说深入浅出.所以还是请大家不要抱着太高的期望,因为没有期望就没有失望,就像陈润说的,超预期嘛.全当看小说的心情来看 ...

  6. 使用RecyclerView实现瀑布流的效果

    主函数: public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; privat ...

  7. [转]RecyclerView初探

    原文地址:http://www.grokkingandroid.com/first-glance-androids-recyclerview/ RecyclerView是去年谷歌I/O大会上随Andr ...

  8. Android RecyclerView体验(一)- 简介

    在网上关于RecyclerView的基本使用方式已经有了比较详细介绍,而且其设计结构也类似于ListView,所以本文将不重点介绍如何使用,在文末的引用中都可以相关内容.这里主要是介绍Recycler ...

  9. 将替代ListView的RecyclerView 的使用(一)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/by317966834/article/details/36205923 RecyclerView 是 ...

随机推荐

  1. [SQL]公交新路问题

    --解答一 CREATE TABLE T_Line( ID nvarchar(), --公交线路号 Station nvarchar(), --站点名称 Orders int) --行车方向(通过它反 ...

  2. POJ 2516 Minimum Cost [最小费用最大流]

    题意略: 思路: 这题比较坑的地方是把每种货物单独建图分开算就ok了. #include<stdio.h> #include<queue> #define MAXN 500 # ...

  3. Android--创建对话框AlertDialog

    学习Android过程中发现showDialog().onCreateDialog()这些方法从Android4.0开始都过时了. 官方推荐使用DialogFragment类来创建对话框. 1)布局文 ...

  4. Android——进度条ProgressBar

    1.activity_progressbar.xml <?xml version="1.0" encoding="utf-8"?><Linea ...

  5. Appium环境搭建Java篇

    1.下载.安装JDK&配置Java环境变量 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html ...

  6. python学习笔记(MD5算法)

    博主最近进度停滞了 对web开发理解欠缺好多内容 今天整理下MD5算法,这个涉及到mysql数据库存储用户表密码字段的时候 一般是带有加密的 # -*- coding: utf-8 -*- impor ...

  7. Flash Air 打包安卓 ane

    工具: 1.flash builder 2.adt打包工具 3.数字证书 一. 创建 jar 文件 1. 打开flash builder, 新建一个java 项目. 2.点击项目属性,选择Java构建 ...

  8. 使用C#调用windows API入门

    一:入门,直接从 C# 调用 DLL 导出   其实我们的议题应该叫做C#如何直接调用非托管代码,通常有2种方法: 1.  直接调用从 DLL 导出的函数. 2.  调用 COM 对象上的接口方法 我 ...

  9. 应用OpenCV进行OCR字符识别

    opencv自带一个字符识别的例子,它的重点不是OCR字符识别,而主要是演示机器学习的应用.它应用的是UCI提供的字符数据(特征数据). DAMILES在网上发布了一个应用OpenCV进行OCR的例子 ...

  10. dig out secrets beneath AirSig

    My sister installed AirSig last week. She is so exciting about this new techknology and she won't st ...