以后android-基础编程*都是控件demo里面的,不再累赘重写。直接介绍控件使用。

RecyclerView is a more advanced and flexible version of ListView. This widget is a Container for large sets of views that can be recycled and scrolled very efficiently.RecyclerView从2014年发布.位于android.support.v7.widget.RecyclerView中。

1.android studio配置RecyclerView库代码

在gradle中加入

compile 'com.android.support:recyclerview-v7:23.+'

2.定义布局中使用

<android.support.v7.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView>

还要recycleview的item的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="#44ff0000"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/id_num"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="1" />
</FrameLayout>

3.在RcyclerViewActi中使用

a.加载view布局:

recyclerView = (RecyclerView) findViewById(R.id.recycle_view);

b.设置布局管理LayoutManager

recyclerView.setLayoutManager(new LinearLayoutManager(this));

目前SDK中提供了三种自带的LayoutManager,分别是线程、网格、瀑布式布局管理器:

  • LinearLayoutManager

  • GridLayoutManager

  • StaggeredGridLayoutManager

c.配置数据源

adapter = new RecyclerAdapter(this);
adapter.setData(mDatas);
//必须指定adaoter
recyclerView.setAdapter(adapter);

4.点击事件,recycler不支持点击事件,需要自己实现

a.在adapter定义接口实现如下:

public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view , int pos);
} // 2 添加接口和设置接口的方法
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}

b.adater implement view的点击事件

@Override
public void onClick(View v) {
//Toast.makeText(get, "默认Toast样式").show();
Log.d("zcx","test");
if (mOnItemClickListener != null) {
//调用onitemclick
mOnItemClickListener.onItemClick(v,1);
}

c.调用onitemclick

adapter.setOnItemClickListener(new RecyclerAdapter.OnRecyclerViewItemClickListener()
{
@Override
public void onItemClick(View view, int pos) {
//DO your fucking bussiness here!
adapter.addData(1);
Toast.makeText(getApplicationContext(),"zcx"+pos,Toast.LENGTH_LONG).show();
}
});

5.item的动画效果:

recyclerView.setItemAnimator(new DefaultItemAnimator());

最后的实验结果如下:

android-基础编程-RecyclerView的更多相关文章

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

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

  2. android: 多线程编程基础

    9.1   服务是什么 服务(Service)是 Android 中实现程序后台运行的解决方案,它非常适合用于去执行那 些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使 ...

  3. Android网络编程基础

    Android网络编程只TCP通信 TCP 服务器端工作的主要步骤如下.步骤1 调用ServerSocket(int port)创建一个ServerSocket,并绑定到指定端口上.步骤2 调用acc ...

  4. Qt on Android 核心编程

    Qt on Android 核心编程(最好看的Qt编程书!CSDN博主foruok倾力奉献!) 安晓辉 著   ISBN 978-7-121-24457-5 2015年1月出版 定价:65.00元 4 ...

  5. Android网络编程系列 一 TCP/IP协议族

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

  6. Android网络编程系列 一 Socket抽象层

     在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...

  7. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

  8. 【Xamarin开发 Android 系列 4】 Android 基础知识

    原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...

  9. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  10. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

随机推荐

  1. C# web服务器被webbench攻击及目现采用的防御措施

    web服务器连续两次出现CPU达到100%的情况,第一次还想着是升级时,哪个地方写错了,有死循环,最后重启了三次服务器才好. 但事后分析代码,没有死循环的可能,于是在第二次又出现CPU达100%时,仔 ...

  2. 继承 (js原型链)

    原型链是实现继承的主要方法.基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法. 1.构造函数.原型.实例的关系: 每个构造函数都有原型属性(Prototype),指向一个原型对象(函数创 ...

  3. windows下git的使用方法(码云)

    这表文章主要是用了可视化操作: 使用命令行操作:https://www.cnblogs.com/mswyf/p/9370238.html 一.安装Git Bash 为了在windows下使用Git,我 ...

  4. django admin管理后台中文添加问题

    django版本号 1.7.8 #create database mydb character set utf8;#django-admin.py startproject mysite#设置sett ...

  5. Codeforces 799D. String Game 二分

    D. String Game time limit per test:2 seconds memory limit per test:512 megabytes input:standard inpu ...

  6. [Robot Framework] 通过RemoteWhiteLibrary启动程序并登录初尝试

    启动remote whitelibrary之后,在robot framework中配置好library,就可以调用whitelibrary的关键字了 启动APP White.LAUNCHAPP    ...

  7. [Robot Framework] Robot Framework里面的变量怎么知道是在哪里定义的?

    看变量在哪里定义的:Ctrl+Alt+Space

  8. java链表实现

    import java.util.Scanner; class DATA2 { String key; // 结点的关键字 String name; int age; } class CLType / ...

  9. DHT

    DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络.DHT全称叫分布式哈希表(Distributed Hash Table),是一 ...

  10. 8月的list

    多校的list: 第一周的多校list: k路归并 (思想大概理解了,还没实现 莫比乌斯 树归 第三场的多校list: 斯坦纳树 第四场多校: Pollard_rho算法和Miller_Rabin   ...