Android RecyclerView简单使用

安卓RecyclerView和Adapter 阅读详情

在android5.0后推出了一个RecyclerView替代ListView和GridView,在性能上也比listview或者gridview更好,由于做TV端开发,所以一直没用上,现在有时间还是要学习下,

RecyclerView实现ListView效果:

package com.simple;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
/**
 * Created by Adminis on 2017/5/7.
 */
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {
    private LayoutInflater layoutInflater;
    private Context mContext;
    private List<String> mDatas ;
    public void setmDatas(List<String> list) {
        this.mDatas = list;
    }
    public MyAdapter(Context context) {
        this.mContext = context;
        layoutInflater = LayoutInflater.from(mContext);
    }
    @Override
    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View root =  layoutInflater.inflate(R.layout.layout_item,null);
        MyHolder holder = new MyHolder(root);
        return holder;
    }
    @Override
    public void onBindViewHolder(MyHolder holder, int position) {
        holder.tv_content.setText(mDatas.get(position));
    }
    @Override
    public int getItemCount() {
        return mDatas!=null?mDatas.size():0;
    }
    class MyHolder extends RecyclerView.ViewHolder {
        private TextView tv_content;
        public MyHolder(View itemView) {
            super(itemView);
            tv_content = (TextView) itemView.findViewById(R.id.tv_content);
        }
    }
}
上面是adapter,你会发现和之前的listview的adapter是有区别的,而且adapter中的几个抽象方法也不一样:

MainActivity.java 调用层:

package com.simple;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerview;
    private MyAdapter adapter;
    private List<String> datas;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
        initData();
        adapter = new MyAdapter(this);
        adapter.setmDatas(datas);
        recyclerview.setAdapter(adapter);
        recyclerview.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
    }
    private void initData() {
        datas = new ArrayList<>();
        datas.add("刘亦菲");
        datas.add("张含韵");
        datas.add("陈好");
        datas.add("汤唯");
        datas.add("韩雪");
        datas.add("张嘉倪");
        datas.add("姚笛");
        datas.add("张柏芝");
        datas.add("林凤娇");
        datas.add("俞飞鸿");
        datas.add("贾静雯");
        datas.add("周杰伦");
        datas.add("麻吉弟弟");
        datas.add("王艳");
        datas.add("Gameapple");
        datas.add("公交MM");
    }
}
layout_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFB6C1"
    >
    <TextView
        android:id="@+id/tv_content"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:gravity="center"
        />
</RelativeLayout>
效果图:


你会发现RecyclerView并没有分割线,RecyclerView并没有给我们提供什么属性设置分割线,这要自己去实现.

RecyclerView实现GridView效果:

只要把

recyclerview.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

改成:

 recyclerview.setLayoutManager(new GridLayoutManager(this,3));

效果图:


你会发现listview变成gridview切换非常简单,就一行代码的事,这个在展示本地图片的时候,经常有这二种UI展示来回切换,如果用RecyclerView实现非常简单,

如果把

 recyclerview.setLayoutManager(new GridLayoutManager(this,3));

吧GridLayoutManager中的3改为1,就变成了listview

RecyclerView实现Gallery或者HorizontalListView效果:

只要把RecyclerView设置

recyclerview.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false));

效果图:


这个在一些新闻app中的标题可以用这个实现,比如今日头条app标题view就可以这么实现,


安卓之RecyclerView只点击RecyclerView不点击Item 今天讲一下RecyclerView这个控件,使得不点击里面的item,只点击RecyclerView,写了demo随便看看哈~~~ 首先先分析为什么我们设置了Recyclerview.setOnClickListener确没办法响应。其实可以看一下源码。 里面源码有这个也有点击事件的。其实直观的分析其实就是点击事件在item里面所以不在RecyclerView,导致RecyclerVi 阅读详情

相关推荐

安卓的RecyclerView应用

RecyclerView前言一、依赖的导入二、RecyclerView的Item视图编写三、RecyclerView适配器的编写1、设置返回的视图2、设置数据绑定和返回数量3、在控件中设置这个适配器实现效果总结 前言 更多内容请访问酒易的个人博客 本章主要讲述RecyclerView的适配器的设置 一、依赖的导入 RecyclerView是需要导入依赖的,请添加以下代码: implementation 'androidx.recyclerview:recyclerview:1.1.0' 二、

ziyouc520的博客 261

Android RecyclerView使用简述

  RecyclerView是Android中非常受欢迎的控件,RecyclerView是官方在Android5.0之后新添加的控件,推出用来替代传统的ListView和GridView列表控件,所以如果你还在使用ListView的话可以替换为RecyclerView了。文章的功能可以先运行看看效果,扫码下载APK   对于RecyclerView的使用根据实际项目进行说明,一些功能可能是你现在正在做的,对你有帮助也说不定。  创建一个名为RecyclerViewDemo的Android项目。注意Andro

晨曦 2万+

RecyclerView的简单使用(一)

博客地址 http://blog.youkuaiyun.com/sbsujjbcy/article/details/44182651

Android的RecyclerView简单使用的实例(附Demo)

 目录   1.例子1:线性RecycleView的简单使用(类似ListVIew) 附加1:增加图片  附加2:增加分割线 2.例子2:为RecyclerView设置点击事件监听 3.例子3:线性水平RecycleView的简单使用 4.例子4:网格视图的RecyclerView的简单使用(类似GridView) 附加1:为网格视图增加监听器 5.例子5:RecyclerVie...

广源的博客 1万+

Android RecyclerView基本使用详解

什么是RecyclerView 关于RecyclerView,是一个主要用于展示和回收View的有一个控件,在官用了一句话来概括 RecyclerView 是一种通过提供有限的数据项窗口有效显示大数据集的视图。 基提供几个基本的功能, 控制其显示的方式 ———>LayoutManager—(必需) 控制Item间的间隔 ———>ItemDecoration—-(非必需) 控制Item增删的动画——->ItemAnimator——(非必需) 以上就可以完成ListView大部的功能了,但是确缺少了一个很常用的功能,就是Item的点需事件。当然,这个并不是什么问题,上文也说了,RecyclerV

Linux-BSP-WIFI驱动移植与调试实战——以RTL8189FS为例

本文以RTL8189FS为例,详细介绍了Linux BSP中WiFi驱动移植与调试的全流程。涵盖硬件原理图分析、内核配置、设备树适配、驱动编译加载及问题排查等关键步骤,提供实用的调试技巧和解决方案,帮助开发者高效完成嵌入式WiFi驱动开发。

moon9的博客 397

Android开发之RecyclerView的使用一

1.写一个继承于RecyclerView.ViewHolder的类。它可以接收一个 itemView 作为参数。在构造方法中,创建一个变量来引用 TextView,然后将它指向表项布局里对应的视图。然后自定义 bindDateToView() 函数,将数据和UI关联起来。

weixin_43858011的博客 1644

小程序选项卡以及swiper套用(跨页面)

选项卡tab和swpier之间的套用 其实我之前写过一篇选项卡的切换demo,大家阔以参考一下 小程序多个选项卡切换 那今天写这个demo呢,是因为项目需求,所以仅供参考。 我是拿到了home.wxml的数组下标, 通过url传参的方式去将这个id传到下一个页面, 下一个页面接收以后再将id赋值给对应的tabI或者currentId(swiper 的下标) 实现上一个页面进来以后直接进入对应的页...

Rechal_Mei的博客 3597

Android RecyclerView的基本使用,初学必备

Android Recycler使用详解,,创建adapter,布局,点按效果、变颜色,点击和长按监听,超级详细,初学必备,容易上手

Benlve的博客 5256

基于Active-HDL的HDL设计录入与仿真

作者:毛茏玮 / Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav=1&amp;wvr=6&amp;is_all=1 GitHub:github.com/saint-000 优快云: https://me.youkuaiyun.com/qq_4053...

一个会写代码的烤鸭 7782

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧

u012790770的博客 3615

Android RecyclerView的简单使用

RecyclerView 是作为 ListView 和 GridView 的加强版出现的,目的是在有限的屏幕之上展示大量的内容,因此 RecyclerView 的复用机制的实现是它的一个核心部分,复用机制可以显著提高性能,改善应用响应能力并降低功耗。

帅次的博客 3081

DRV8311HRRWR直流无刷(BLDC)电机驱动原理图设计

DRV8311HRRWR集成三个MOSFET 半H桥,用于驱动三相无刷直流电机(BLDC),适用于5V、9V、12V或18V直流电源轨或1S至4S电池供电应用。内部集成三个具有集成电流感测功能的电流感测放大器(CSA),可感测BLDC电机的三相电流,从而实现FOC和电流控制系统设计方案。集成保护特性:VM 欠压锁定 (UVLO)、 电荷泵欠压 (CPUV)、过流保护 (OCP)、热警告和热关断 (OTW/OTSD)、故障条件指示引脚 (nFAULT)支持 1.8V、3.3V 和 5V 逻辑输入。

zhusl6688的博客 1228

安卓的那些事儿-android之RecyclerView的使用,实现列表横向滚动

《安卓的那些事儿》      方便自己记忆,也为了方便一些人像我一样到处找方法,把自己平时碰到的一些写代码的事儿记下来,可能也会把一些对安卓使用的看法记下来,或许会很啰嗦,但我保证,肯定都是实用的。          安卓做垂直方向的Litview列表滚动,这个简单,随便一搜一大堆,但实现横向滚动,这个貌似就没那么容易,一开始其实我也是懵逼的,后来看到有人说使用RecyclerView可以实

fengwang61的博客 2740

基于Python的SEC Edgar文件高效爬取:最新技术与实战指南

本文详细介绍了如何使用Python最新技术高效爬取SEC Edgar数据库中的金融文件。我们将探讨SEC Edgar系统的结构、合法爬取注意事项,并使用现代Python库如Requests-HTML、aiohttp和Playwright实现多种爬取方案。文章包含完整的代码示例、性能优化技巧以及数据处理方法,为金融数据分析师、研究人员和开发者提供全面指导。关键词:SEC Edgar、Python爬虫、金融数据、异步爬取、Playwright、XBRL解析。

2201_76125261的博客 633

手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战

摘要: 本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理,通过滑模观测器估算反电动势,结合PLL抑制抖振;2)系统架构,替代编码器信号;3)Simulink建模流程,涵盖Clarke变换、SMO离散化实现、PLL设计等关键步骤;4)参数整定指南和工程实践要点,如启动策略和故障处理。该方法具有成本低、可靠性高的优势,适用于家电、电动车等场景,仿真结果显示角度误差±5°,速度动态跟随良好。文章还提供了调试建议和常见问题解决方案。

MHD0815的博客 136

Android安卓 RecyclerView 简单实现 超详细解释!!!

RecyclerView:优于ListView的一个List显示工具,较ListView复杂一些,但是代码套路比较固化。RecyclerView有三种模式,ListView(列表形式),StaggeredView(瀑布形式),GridView(表格形式)这里先用ListView做一个简单的阐述,之后再细说三种形式其实三种形式大致相同共通性强 使用步骤: 定义并设置Adapter适配器,定义设置LayoutManager布局管理器。 使用准备:设置 itemViewLayout 和 mainlayout 以及

m0_51517626的博客 3255

[deprecated]第四章:TTM分析: 4.2.1 存储分配ttm_bo_validate功能实现分析

ttm_bo_validate是TTM框架中负责验证和调整BufferObject物理内存分配的核心函数,主要用于显存管理。该函数通过placement参数判断BO是否需要迁移或重新分配资源,完成内存分配、迁移及缓存策略调整等操作。实现流程包括资源释放、兼容性检查、迁移保护、新资源分配、迁移实现等步骤,支持多跳迁移和临时缓冲区。典型应用于显存溢出迁移、缓存策略调整、驱动初始化等场景,确保BO始终处于预期状态。

图形/计算GPU的驱动与虚拟化技术分享园地 842

安卓RecyclerView与DrawerLayout的简单应用

RecyclerView android中有一个组件叫做RecyclerView,用它可以实现横向滑动的ListView列表,还可以实现瀑布流等多种炫酷的功能。      使用RecyclerView的流程是:创建一个RecyclerView界面,然后再创建一个RecycleViewAdapter适配器,创建一个布局管理器,就可以运用RecyclerView了。      public

2880

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 安卓RecyclerView显示本地视频并播放

activity_main     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="ma

無趣的博客 1877

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android中RecyclerView的简单使用(四),安卓多线程面试题

else{});//判断底部视图加载状态((FooterHolder) holder).mtv.setText(“正在加载更多数据…”);break;((FooterHolder) holder).mtv.setText(“没有更多数据了…”);break;@Override//根据viewHolder判断布局的加载super(v);super(v);

m0_60567881的博客 968

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

安卓Android RecyclerView的使用

5、在Activity/Fragment等中的调用,这里设置的是线性布局中的水平布局,也就是只有一行,当点击每个Item/每个Item里的按钮时,会调用showMenuDetailView方法。1、自定义通用的RecyclerView类。3、根据自己的需求,确定每个item的布局。(2)创建 ViewHolder 的方法。(3)绑定数据到 ViewHolder。2、在xml文件中,定义布局。4、适配器Adapter。(1)设置点击事件监听器。

m0_54198552的博客 585

Android 安卓开发之 Tablayout + ViewPager + RecyclerView

Android 安卓开发之 Tablayout + ViewPager + RecyclerView ViewPager 是安卓开发中的一个非常重要的工具,用于实现页面切换,滑动变化等,今天就来实现一下用Tablayout和ViewPager来实现一个比较好的效果 首先看一下效果 接下来直接上代码: 首先修改我们的首页面布局,加入Tablayout 和ViewPager <?xm...

孑桀 1556

安卓Android Studio详解build.gradl文件RecyclerView

备注:此备注将会存在本人的每一条博客,将会定期更改 1、使用的软件是Android studio 版本是3.4.2 今天学到RecyclerView,需要添加gradle依赖,搞了一天还是懵懵懂懂的,虽然做好了但不知其所以然,所以去重头查了一遍 首先,是安卓的版本,图是在网上找的 接下来是文件里的属性,一般有两个build.gradle 我们一般在app里面的进行更改以及添加依赖的操作,事实上,...

季小心的博客 441

[Android]【安卓】RecyclerView Items间隔设置

[Android]【安卓】RecyclerView Items间隔设置 本篇博客已收录到我的安卓开发小结中——点击【安卓开发小结】 参考资料:Android Recyclerview GridLayoutManager column spacing 有时候会有这样的需求,RecycleView的第一个Item距离左边屏幕20px,最后一个Item距离右边屏幕20px,中间Items间隔6...

Hy的博客 1376

安卓RecyclerView的使用以及抽取基类

安卓RecyclerView的使用以及抽取基类1.引入:在moudle中的build.gradle文件里,找到dependencies,添加关于recyclerView的引用:compile 'com.android.support:recyclerview-v7:24.2.0' //这里的版本需要和V7包相对其实design包中含有Material Design相关的很多控件,其中也包括了rec

qq_38605423的博客 1120
上一篇: android 6.0权限申请机制
下一篇: android mvp模式讲解
zhoushenxian
博客等级 码龄12年 453粉丝 549原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值