package com.example.administrator.recyclerview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.widget.Toast; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {
RecyclerView mRecyclerView;
MyAdapter adapter;
Dates dates;
List<Dates> mDate;
int[] imageId={R.mipmap.love_card_avar,R.mipmap.love_card_img1,
R.mipmap.love_card_img2,R.mipmap.love_card_img3,R.mipmap.love_card_img4
,R.mipmap.love_card_img5
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化对象,实现绑定
mRecyclerView= (RecyclerView) findViewById(R.id.recyclerView);
initDates();
// 创建数据源
adapter=new MyAdapter(MainActivity.this,mDate);
// 使用adapter来设置点击事件,由于点击事件是在MyAdapter中定义的所以要由MyAdapter的对象来调用
adapter.setOnRecyclerViewItemClickListener(new MyAdapter.OnRecyclerViewItemClickListener() {
@Override
public void OnItem(View view, int position) {
Toast.makeText(MainActivity.this, "item点击事件", Toast.LENGTH_SHORT).show(); }
});
// 设置适配器
mRecyclerView.setAdapter(adapter);
// 设置横向滑动的item 用LinearLayoutManager.HORIZONTAL
// GridLayoutManager(this,2, LinearLayoutManager.HORIZONTAL,false)中
// GridLayoutManager layoutManager=new GridLayoutManager(this,2, LinearLayoutManager.HORIZONTAL,false);
// 设置垂直滑动的item用LinearLayoutManager.VERTICAL,参数列表含义:本类即上下文,排列行数或者列数,排列类型,false
// GridLayoutManager layoutManager=new GridLayoutManager(this,3,LinearLayoutManager.VERTICAL,false);
// LinearLayoutManager效果如同ListView的展示效果单行或者单列,参数列表含义:上下文即本类,排列类型,false
// LinearLayoutManager layoutManager=new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false);
// StaggeredGridLayoutManager为瀑布流的布局管理工具,参数列表的含义:列数或者行数,排列类型
StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(2,LinearLayoutManager.VERTICAL); // RecycleView中onCreateViewHolder并没有将item填充到页面中,还需要调用 setLayoutManager();方法是将item填充到页面
mRecyclerView.setLayoutManager(layoutManager);
// 设置增删除item的动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
// 设置线型
mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.HORIZONTAL_LIST));
mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL_LIST)); }
// 设置数据源,用for循环的方法创建集合的数据源
public void initDates(){
mDate=new ArrayList<>();
for (int i=0;i<6;i++){
dates=new Dates(imageId[i]);
mDate.add(dates);
}
}
}

RecyclerView-------MainActivity代码的更多相关文章

  1. 一篇博客理解Recyclerview的使用

    从Android 5.0开始,谷歌公司推出了RecylerView控件,当看到RecylerView这个新控件的时候,大部分人会首先发出一个疑问,recylerview是什么?为什么会有recyler ...

  2. RecyclerView+CardView简单使用

    RecyclerView取代Listview用来显示数据,除此之外还能实现瀑布流的布局.CardView让我们的界面更好看,此外还将使用官方的下拉刷新. 添加支持: compile 'com.andr ...

  3. Android 高级编程 RecyclerView 控件的使用

    RecyclerView 是Android 新添加的一个用来取代ListView的控件,它的灵活性与可替代性比listview更好. 看一下继承关系: ava.lang.Object    ↳ and ...

  4. android 5.0新特性学习--RecyclerView

    在过去很多年,我们的PC或者手机设备都是采用拟物化的设计风格,IOS采用扁平化的特性,android在2014年IO大会上说采用Material Design的设计风格,显示效果不能过于生硬的转换,而 ...

  5. Android -- RecyclerView实现顶部吸附效果

    1,先来看一下今天实现的效果: 2,这次的效果是使用ItemDecoration来实践的,来看一看我们的实现吧 第一步:首先添加依赖,由于我们这些数据是请求网络的,所以一下我们添加网络框架依赖.Rec ...

  6. RecyclerView 实现gallery画廊效果

    1.RecyclerView的基本用法 首先主Activity的布局文件: [html] view plaincopy <RelativeLayout xmlns:android="h ...

  7. 基于RecyclerView实现的分组显示信息demo

    发布时间:2018-11-07   技术:Android Studio 3.1.3+ RecyclerView+sectionRecyclerViewAdapter   概述 利用sectionedR ...

  8. Android 自己定义RecyclerView 实现真正的Gallery效果

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38173061 .本文出自:[张鸿洋的博客] 上一篇博客我使用自己定义Horizo ...

  9. Android控件RecyclerView的基本用法

    Android控件RecyclerView的基本用法 转 https://www.jianshu.com/p/e71a4b73098f   github: https://github.com/Cym ...

  10. RecyclerView的刷新分页

    在开发中常常使用到刷新分页,这里实现一个 RecyclerView 的简单的刷新分页操作,测试效果见文末,实现过程参考如下: 实现思路 加载更多数据使用到 RecyclerView 加载多种布局,根据 ...

随机推荐

  1. android模拟器默认位置的修改

    1.创建ANDROID_SDK_HOME环境变量,如ANDROID_SDK_HOME=D:\eclipse_android\android-sdk 2.在ANDROID_SDK_HOME目录下,建立. ...

  2. Cookie/Session机制详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  3. 从一道面试题分析javascript闭包

    据说是一不注意就会做错的五道javascript面试题之一,我们来看看这道题长什么样 function Container( properties ) { var objthis = this; fo ...

  4. Lua 学习笔记(十一)元表与元方法

    在Lua中的每个值都有一套预定义的操作集合.例如可以将数字相加,可以连接字符串,还可以在table中插入一对key-value等.但是我们无法将两个table相加,无法对函数作比较,也无法调用一个字符 ...

  5. [ROS] Studying Guidance

    Reference: https://www.zhihu.com/question/35788789 安装指南:http://wiki.ros.org/indigo/Installation/Ubun ...

  6. Hammer.js分析(四)——recognizer.js

    不同识别器会使用不同逻辑,根据从相关Input类获取到的事件对象和事件,实现自定义的触屏事件,例如tap.pinch等. 一.继承关系 Recognizer与前面的Input一样,也相当于是个抽象类. ...

  7. PHP面试题目搜集

    搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记. 曾经看过数据结构.设计模式.HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘 ...

  8. Zookeeper数据模型及其应用

    Zookeeper作为分布式系统的底层协调服务有着其简单可依靠的数据模型,数据模型加之数据同步.一致性处理和可靠性,在此之上有很多经典的应用,例如,分布式锁.服务器动态上线下感知.主节点选举.数据发布 ...

  9. 【JUC】JUC集合框架综述

    一.前言 完成了JUC的锁框架的分析后,现在分析JUC集合框架,之前分析过的集合框架,很大程度上都不是线程安全的,其在多线程环境下会出现很多问题,为了保证在多线程环境下仍然能够正确安全的访问集合,出现 ...

  10. Python字典实现分析

    背景介绍 最近使用Python开发项目为主,当使用到字典时感觉非常方便实用.那么好奇心就驱使我要搞清楚字典是怎么实现的.为了真正的搞清楚字典的实现就不得不使用C语言来实现一遍,为此我查了一些资料现在总 ...