RecyclerView(滚动控件)的用法
1.首先在build.gradle中添加依赖库
compile 'com.android.support:recyclerview-v7:24.2.1'
2.修改activity_main.xml
<LinearLayout ......
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="maych_parent"
android:layout_height="match_parent" />
</LinearLayout>
3.类似ListView,新建一个适配器FruitAdapter,定义一个ViewHolder内部类,传入一个View参数,重写onCreateViewHolder()、onBindViewHolder()、getItemCount()
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>{
private List<Fruit> mFruitList;
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView Fruitimage;
TextView FruitName;
//创建ViewHolder内部类
public ViewHolder(View view){
super(view);
fruitImage = (ImageView)findViewById(R.id.fruit_image);
fruitName = (TextView)findViewById(R.id.fruit_name);
}
}
public FruitAdapter(List<Fruit> fruitList){
mFruitList = fruitList;
}
//创建ViewHolder实例
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
//为子项赋值
@Override
public void onBindViewHolder(ViewHolder holder,int position){
Fruit fruit = mFruitList.get(position);
holder.fruitImage.setImageResource(fruit.getImageId());
holder.fruitName.setText(fruit.getName());
}
//子项的数目
@Override
public int getItemCount(){
return mFruitList.size();
}
}
4.在MainAcitivity中编写RecyclerView代码
public class MainActivity extends AppCompatActivity{
private Lsit<Fruit> fruitList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits(); //初始化水果数据
RecyclerView recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager); //指定布局方式
FruitAdapter adapter = new FruitAdapter(fruitList);
recyclerView.setAdapter(adapter);
}
private void initFruits(){
for(int i=0;i<2;i++){
Fruit apple = new Fruit("Apple",R.drawable.apple_pic);
fruitList.add(apple);
......
}
}
}
RecyclerView特殊用法
ListView只能实现纵向滚动,而RecyclerView可以实现横向和瀑布流。
横向滚动:
修改fruit_item.xml中LinearLayout布局方向:android:orientation="vartical"; 并将ImageView和TextView设置成水平居中。
在MainActivity中onCreate()添加:layoutManager.setOrientation(LinearLayoutManger.HORIZONTAL);
瀑布流:
调整fruit_item.xml
在MainActivity中onCreate()添加:staggeredGridLayoutManager layoutManager = staggeredGridLayoutManager(3,StaggeredGridLayoutManger.VERTICAL); //1参:列数,2参:排列方向
RecyclerView的点击事件
......
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false);
final ViewHolder holder = new ViewHolder(view);
holder.fruitView.setOnClickListener(new View.onClickListener(){
@Override
public void onClick(View v){
int position = holder.getAdapterPosition();
Fruit fruit = mFruitList.get(position);
Toast.makeText(v.getContext(),"you clicked view"+fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
holder.fruitImage.setOnClickListener(new View.onClickListener(){
@Override
public void onClick(View v){
int position = holder.getAdapterPosition();
Fruit fruit = mFuritList.get(position);
Toast.makeText(v.getContext(),"you clicked image"+fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
return holder;
}
......
RecyclerView(滚动控件)的用法的更多相关文章
- Android学习之基础知识五—RecyclerView(滚动控件)
RecyclerView可以说是增强版的ListView,不仅具有ListVIew的效果,还弥补许多ListView的不足. 一.RecyclerView的基本用法 与百分比布局类似,Recycler ...
- WPF从我炫系列4---装饰控件的用法
这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...
- HorizontalScrollView水平滚动控件
HorizontalScrollView水平滚动控件 一.简介 用法ScrollView大致相同 二.方法 1)HorizontalScrollView水平滚动控件使用方法 1.在layout布局文件 ...
- ASP.NET-----Repeater数据控件的用法总结(转)
一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...
- ListView控件的用法
listView是一个可以用来显示视图列表的控件. 它使用适配器来为之提供数据和资源. ListView使用的基本步骤 得到ListView类型的对象mListView 生成适配器对象mListVie ...
- Java Me-List控件的用法案例
/** * Java Me-List控件的用法案例 */package com.xushouwei.cn; import java.io.IOException;import javax.microe ...
- [转载]ASP.NET-----Repeater数据控件的用法总结
一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...
- {Repeater控件} Repeater控件的用法流程及实例
一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...
- ScrollView垂直滚动控件
ScrollView垂直滚动控件 一.简介 二.方法 1)ScrollView垂直滚动控件使用方法 1.在layout布局文件的最外层建立一个ScrollView控件 2.在ScrollView控件中 ...
- UI各种小控件的用法
今天给大家列举出来UI中的一些小控件的用法.方便大的学习与使用 一些方法和属性我们能够查看API文档.不必将每一个控件的功能都记住, 由于在使用的过程中,我们能够查看API文档.方便使用,我们仅仅要记 ...
随机推荐
- thinkphp Composer安装指南
1.首先我们去composer的官网下载composer,当然也可以用命令行的形势下下载,我是在windows安装的.https://www.phpcomposer.com/ 2.下载以后进行安装,一 ...
- Spring Boot的核心
1.1.1. 入口类和@SpringBootApplication Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序 ...
- Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比
介绍 移动互联网产品与服务器端通信的数据格式,如果没有特殊的需求的话,一般选择使用JSON格式,Android系统也原生的提供了JSON解析的API,但是它的速度很慢,而且没有提供简介方便的接口来提高 ...
- 源码安装LNMP与搭建Zabbix
系统环境:CentOS release 6.5 (Final) 搭建Zabbix 3.0对PHP环境要求>= 5.4 一.下载NMP的软件包: N:wget http://nginx.org/d ...
- php 后台接受POST值
[场景描述]:展示型企业站制作管理后台,前端框架:vue.js2.0,bootstrap,后台语言:php [问题描述]:使用管理后台向接口发送请求时,接口使用PHP的$_POST['args'],接 ...
- 给virtualbox里linux添加共享文件夹
首先,必须要有已经在VirtualBox中安装好的Ubuntu系统,才能按照以下步骤操作,具体怎样在VirtualBox中安装Ubuntu系统百度经验里已经有很多,大家可以自己查询参照. 打开虚拟 ...
- spring: spittr实例 构建简单的web应用
我的环境是: jdk8, spirng4 之前照者书上说的做了,不得成功,于是网上百度,不得其然. 后来看到一篇文章,甚是所感.https://segmentfault.com/q/101000000 ...
- Appium 自动化测试(5)-- Appium详细介绍:Appium 手机自动化测试_TesterHome公开版pdf
- 【Hive】执行脚本
1.linux下执行hive sql脚本 (1)hive -e “sql语句” (2)hive -e “sql语句” >> xxx 将sql查出来的语句重定向到xxx文件中,会显示Ok和数 ...
- python:webbrowser
import webbrowser webbrowser.open_new_tab('www.baidu.com')