android recyclerview gradle,Android RecyclerView 的简单使用
如何使用
1.build.gradle中添加该类
compile 'com.android.support:recyclerview-v7:28.0.0'
2.视图层中定义RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent">
3.绑定RecyclerView
RecyclerView rv = findViewById(R.id.rv);
RvAdapter rvAdapter = new RvAdapter(list);
rv.setAdapter(rvAdapter);
// rv.setLayoutManager(new GridLayoutManager(this,4));
rv.setLayoutManager(new
LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
RecyclerView中有两个必须的设置,setLayoutManager()和setAdapter.
LayoutManager有两种,GridLayoutManager,LinearLayoutManager.
GridLayoutManager使用了2个参数的构造;GridLayoutManager(Context context, int spanCount)
context :上下文
spancout: 每行显示的数量。
LinearLayoutManager使用了3个参数的构造,LinearLayoutManager(Context context, int orientation, boolean reverseLayout)。
context:上下文
orientation:方向,垂直还是水平
reverseLayout:是否倒置,true为倒置
定义Adapter之前创建子视图
activity_item
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/border"
>
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:src="@mipmap/ic_launcher"
/>
android:layout_width="250dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:gravity="center"
android:id="@+id/rv_text"
android:background="@drawable/border_blue"
/>
4.定义Adapter
public class RvAdapter extends RecyclerView.Adapter {
private List list;
private MyClickListener myClickListener;
public void setMyClickListener(MyClickListener myClickListener) {
this.myClickListener=myClickListener;
}
public RvAdapter(List list) {
this.list=list;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
//绑定子视图
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_item, viewGroup, false);
MyViewHolder myViewHolder=new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {
TextView textView =myViewHolder.itemView.findViewById(R.id.rv_text);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myClickListener.setTextClickListener(i);
}
});
textView.setText(list.get(i));
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myClickListener.setOnClickListener(i);
}
});
myViewHolder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
myClickListener.setOnLongClickListener(i);
return false;
}
});
}
@Override
public int getItemCount() {
return list.size();
}
//定义视图管理器
class MyViewHolder extends RecyclerView.ViewHolder {
public MyViewHolder(@NonNull View itemView) {
super(itemView);
}
}
//事件监听
public interface MyClickListener{
void setOnClickListener(int i);
void setOnLongClickListener(int i);
void setTextClickListener(int i);
}
}
Adapter中重写了三个方法
onCreateViewHolder:用来获取子视图控制器,MyViewHolder继承RecyclerView.ViewHolder类。
onBindViewHolder:用来获取子视图里的控件,第二个参数表示第几个item。
getItemCount():表示页面需要显示的item数量。
RecyclerView只有item的点击事件没有长按事件,使用事件监听给外部暴露长按事件。
rvAdapter.setMyClickListener(new RvAdapter.MyClickListener() {
@Override
public void setOnClickListener(int i) {
Toast.makeText(MainActivity.this,"点击了第 "+ i +"个",Toast.LENGTH_SHORT).show();
}
@Override
public void setOnLongClickListener(int i) {
Toast.makeText(MainActivity.this,"长按了第 "+ i +"个",Toast.LENGTH_SHORT).show();
}
@Override
public void setTextClickListener(int i) {
Toast.makeText(MainActivity.this,"点击了第 "+ i +"个text",Toast.LENGTH_SHORT).show();
}
});
5.效果
效果.gif
android recyclerview gradle,Android RecyclerView 的简单使用相关推荐
- Android 第二十一课 RecyclerView简单的应用之编写“精美”的聊天页面
1.由于我们会使用到RecyclerView,因此首先需要在app/build.gradle当中添加依赖库.如下: apply plugin: 'com.android.application' .. ...
- android 日程安排view,RecyclerView 列表控件中简单实现时间线
时间 时间,时间,时间啊:走慢一点吧- 看见很多软件中都有时间线的东西,貌似天气啊,旅游啊什么的最多了:具体实现方式很多,在本篇文章中讲解一种自定义View封装的方式. 效果 先来看看效果. 分析 软 ...
- android 5.0+原生质设计,cardview、Recyclerview、百分比布局PercentRelativeLayout简单使用
Android 5.0出来已经快一年时间了,全新的系统采用Material Design设计,耳目一新的感觉,当然新系统的出来也增加了新的API为开发带来便捷,现在就说说新出的几个控件,cardvie ...
- Android控件知识点-RecyclerView(全网最详解)
背景:笔者在开发Android 蓝牙通信,需要搜索蓝牙设备并且动态显示,这个时候就需要选取适合的相关视图控件了,最后兜兜转转还是觉得RecyclerView好用一些,本人也是在开发的过程中,搜索了很多 ...
- android view嵌套,Android RecyclerView嵌套RecyclerView点击事件
RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题 其实问题根本就是咱们没有处理好被嵌套的那层recycleview的position 那么解决思路也很简单,想办法把被嵌套 ...
- AndroidStudio中提示:Didn‘t find class “android.support.v7.widget.RecyclerView“
场景 在Android Studio中使用Recycle View时提示: Didn't find class "android.support.v7.widget.RecyclerView ...
- Android Studio中引入RecyclerView的v7包
本文转载自[http://blog.csdn.net/a10615/article/details/51268022] 一直知道RecyclerView可以代替ListView.GridView使用, ...
- android n等分 layout,RecyclerView GridLayoutManager 等分间距
RecyclerView 表格实现 RecyclerView 配合GridLayoutManager 可以实现类似表格的样式,为了实现均分,adapter 的布局宽度改为匹配父元素,即 android ...
- Android view.settran,Android RecyclerView从入门到玩坏
目录 前言 基础使用 分隔线 点击监听 搭配CardView 更丰富的条目 增删条目 快速添加视图 让RecyclerView支持复杂视图 最后前言 RecyclerView在Android界面开发当 ...
最新文章
- Echarts词云图
- 以数据为核心的SOC3.0时代到来
- AV1生态系统更新:2019年6月
- 博客园中的源代码格式显示
- oracle参数文件和口令文件
- vins 解读_VINS 中的 IMU 预积分推导和代码解读
- password php,password.php
- ZXing条码扫描----竖屏解决方案
- 物理计算机技术研究生就业前景,物理学就业前景
- Java集合、泛型和枚举
- 国内外游戏运营模式区别
- 微信网页授权关于state
- 智能点餐mysql框架图_SpringBoot微信点餐系统--P3数据库设计
- 使用Minisforum UM560小主机办公一周体验
- 恢复误删excel工作薄中的表格
- 搜索引擎蜘蛛的基本原理及工作流程
- SpringMVC小白问题一之启动时配置应用程序监听器错误
- Python 当前时间是那一年第几周的周几
- 免费数据 | CnOpenData空气质量站点监测数据
- 在人工智能的角逐中,仿真数据是重要的平衡力量吗?
热门文章
- directly test Gateway frontend service in AG3 SICF
- npm install的代理问题
- SAP S/4HANA里KPI tile的一个具体例子
- 如何用SAP ABAP编程语言实现一个简单的区块链模型
- 杨辉三角Python解法
- conda常用命令汇总
- Spark On Yarn 运行模式(详细)
- 配置中文_《洛克人Zero/ZX遗产合集》PC配置公布 支持中文
- linux ucontext 类型,协程:posix::ucontext用户级线程实现原理分析 | WalkerTalking
- pkl格式数据 训练集_Detectron2训练自己的数据集手把手指导