RecycleView和CardView
一、RecycleView
<android.support.v7.widget.RecyclerViewandroid:id="@+id/my_recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="vertical"/>
三个关键要素
LinearLayoutManager linearLayoutManager =newLinearLayoutManager(this){
@Override
protectedint getExtraLayoutSpace(RecyclerView.State state){
return300;
}
};具体步骤
//创建默认的线性LayoutManagermLayoutManager =newLinearLayoutManager(this);//设置recycleView的方向为横向//mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);mRecyclerView.setLayoutManager(mLayoutManager);//如果可以确定每个item的高度是固定的,设置这个选项可以提高性能mRecyclerView.setHasFixedSize(true);//创建并设置Adapteradapter =new rlAdapter();mRecyclerView.setAdapter(adapter);- //处理条目点击事件
adapter.setOnItemClickListener(new rlAdapter.OnRcvItemClickListener(){
@Override
publicvoid onItemClick(View view,int position){
Toast.makeText(MainActivity.this,"当前点击的是第:"+position +"个条目",Toast.LENGTH_SHORT).show();
}
});
staticclass rlAdapter extendsRecyclerView.Adapter<RlViewHolder>implementsView.OnClickListener{
//定义接口,处理Item的点击事件
publicstaticinterfaceOnRcvItemClickListener{
void onItemClick(View view,int position);
}
privateOnRcvItemClickListener itemClickListener ;
publicvoid setOnItemClickListener(OnRcvItemClickListener itemClickListener){
this.itemClickListener = itemClickListener;
}
@Override
publicRlViewHolder onCreateViewHolder(ViewGroup viewGroup,int i){
View view =View.inflate(viewGroup.getContext(),R.layout.item_listview,null);
view.setOnClickListener(this);
returnnewRlViewHolder(view);
}
@Override
publicvoid onBindViewHolder(RlViewHolder rlViewHolder,int position){
rlViewHolder.iv.setImageResource(arrs[position%5]);
rlViewHolder.tv.setText("测试:"+position%5);
//将数据保存到itemView中
rlViewHolder.itemView.setTag(position);
}
@Override
publicint getItemCount(){
return100;
}
@Override
publicvoid onClick(View v){
if(itemClickListener !=null){
itemClickListener.onItemClick(v,(Integer) v.getTag());
}
}
}
staticclassRlViewHolderextendsRecyclerView.ViewHolder{
ImageView iv;
TextView tv;
publicRlViewHolder(View itemView){
super(itemView);
iv =(ImageView) itemView.findViewById(R.id.iv);
tv =(TextView) itemView.findViewById(R.id.tv);
}
}
二、CardView
1、xml中使用android:cardCornerRadius属性指定圆角半径
2、代码中使用CardView.setRadius 设置圆角半径
3、使用 android:cardBackgroundColor属性设置卡片颜色
4、代码中使用CardView.setBackgroundColor设置卡片颜色,可能会影响卡片的阴影
RecycleView和CardView的更多相关文章
- RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- Android RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- Android新特性之CardView的简单使用
Android新特性之CardView的简单使用 我们学习下Android5.0的新增加的控件CardView.首先我们了解一下CardView的基本使用,然后结合RecycleView使用CardV ...
- Android学习之基础知识十五 — 最佳UI体验(Material Design实战)
一.前言 长久以来,大多数人都认为Android系统的UI并不美观,至少没有iOS系统的美观.以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android端的界面风格必须 ...
- Android最佳实践之Material Design
Material概述及主题 学习地址:http://developer.android.com/training/material/get-started.html 使用material design ...
- 不可错过的几款GitHub开源项目
工作之余或者周末感觉无聊?不知道干什么?想继续提高技术,但是不知道做什么的同学,看过来,不妨利用闲暇时间来撸几个 GitHub 上还不错的开源项目,本文推荐的开源项目比较适合新手.及对MVP设计模式不 ...
- Android控件_RecycleView+CarView+Palette联合应用
最终效果 表格布局 垂直布局 横向布局 添加引用 build.gradle implementation 'com.android.support:recyclerview-v7:28.0.0' im ...
- CardView以及RecycleView的一些问题
下面这些属性在listview的标签里有用,在recyclerView里没用. tools:listitem="@layout/list_single_answer_item_borrowe ...
- RecyclerView,CardView导入和使用(Demo)
简介: 这篇文章是ANDROID L——Material Design详解(UI控件)的一个补充或者说是应用实例,如果有时间建议大家稍微浏览一下上篇文章. 本文主要介绍Android L新增加的两个U ...
随机推荐
- [.NET] 《Effective C#》快速笔记 - C# 中的动态编程
<Effective C#>快速笔记 - C# 中的动态编程 静态类型和动态类型各有所长,静态类型能够让编译器帮你找出更多的错误,因为编译器能够在编译时进行大部分的检查工作.C# 是一种静 ...
- linux服务器下安装node
在百度上搜了好久,都没有完整的答案,好多都已经过时了!特留下此脚印 # 检查是否已经安装pythonrpm -qa | grep python# 查版本python# 最好是重新安装 Python推荐 ...
- JavaScript面向对象编程—this详解
this详解 作者的话 在JavaScriptOPPt面向对象编程中,this这位老大哥,相信大家不会陌生.大家在遇到this时,很多朋友难免会有个疑问:"这个this是什么,它到底指向 ...
- Docker - 在Windows7中安装Docker
安装docker 1 - Virtualization Support Check whether virtualization support is enabled at BIOS via HAV ...
- Linux下memcache的安装和启动测试
memcache是一套分布式的高速缓存系统,MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作:如果请求的数据不在me ...
- Python实现RNN
一般的前馈神经网络中, 输出的结果只与当前输入有关与历史状态无关, 而递归神经网络(Recurrent Neural Network, RNN)神经元的历史输出参与下一次预测. 本文中我们将尝试使用R ...
- Redis学习-SortedSet
Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联, ...
- MarkDown语法 学习笔记 效果源码对照
MarkDown基本语法学习笔记 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 下面将对Markdown的基本使用做一个介绍 目 ...
- Ionic集成ArcGIS JavaScript API.md
1. Ionic同原生ArcGIS JavaScript API结合 1.1. 安装esri-loader 在工程目录下命令行安装: npm install angular2-esri-loader ...
- Hive load from hdfs 出错
hive 加载HDFS的数据时出现错误, FATAL:SemanticException [Error 10028] search了一下,跟他一样Hive load from hdfs 出错. 我按照 ...