以后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. android使用Pull解析来自服务器的xml文件时出现错误以及解决方案

    直接上代码,代码中有详细注释: 1 public class CheckUpdateManager { 2 private static final String TAG = "CheckU ...

  2. this指针 new 和delete

    指针类型的函数:函数的返回值是指针. 不要将非静态局部地址用作函数的返回值,离开函数后就失效了 在子函数中定义局部变量后将其地址返回给函数就是非法地址 在子函数中用new操作取得的内存地址返回给主函数 ...

  3. 案例情景--在一次Oracle 数据库导出时 EXP-00008;ORA-00904:EXP-00000: oracle不同版本导入导出规则

    案例情景--在一次Oracle 数据库导出时: C:\Documents and Settings\Administrator>exp lsxy/lsxy@lsxy_db file=E:\lsx ...

  4. iOS.CodeSign

    Inside Code Signing 1. Code Signing需要的基础组件: 证书,私钥 As an iOS developer, chances are you have a certif ...

  5. python之初接触

    编程语言相关 1什么是编程语言 编程语言即语言,语言的本质就是沟通,因而编程语言与英语 .法语.日语等所有语言并无区别,只不过英语是人与人之间沟通的介质,而编程语言则是程序员与计算机沟通的介质. 程序 ...

  6. BZOJ 1791: [IOI2008]Island 岛屿 - 基环树

    传送门 题解 题意 = 找出无向基环树森林的每颗基环树的直径. 我们首先需要找到每颗基环树的环, 但是因为是无向图,用tarjan找环, 加个手工栈, 我也是看了dalao的博客才知道tarjan找无 ...

  7. Eclipse安装和使用windowbuilder插件开发图形界面

    windowbuilder插件的安装 windowbuilder的官方网站:http://www.eclipse.org/windowbuilder/download.php 在Eclipse中 安装 ...

  8. netstat 查看端口命令

    查看特定端口是否启动 netstat -lnp |

  9. springboot server.address 配置问题

    1. server.address 为对应机器ip地址时 ,如 18.10.x.x 此时访问该服务只能使用 ip 访问 . 2. 配置为 127.0.0.1 时  可以使用 localhost  和  ...

  10. fastcgi vc6.0demo

    #include <WinSock2.h> #include <stdio.h> #pragma comment(lib, "ws2_32.lib") ty ...