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文档.方便使用,我们仅仅要记 ...
随机推荐
- mysql 出现Host 'localhost' is not allowed to connect to this MySQL server 错误
MySql数据库:Host 'localhost' is not allowed to connect to this MySQL server 修改mysql的root密码后,出现Host 'loc ...
- [JavaScript]对象创建方法
1.使用Object或对象字面量创建对象 (1)使用Object创建对象 var cat= new Object(); cat.name = "Tom"; cat.color= & ...
- Build_Release.bat
Build_Release.bat @echo off pushd "%~dp0" set tag=Release set PATH="C:\Program Files ...
- js监测滚动条到达最底边
scroll : function(){ $(window).scroll(function () { var scrollTop = $(this).scrollTop(); var scrollH ...
- 上传图片到阿里云oss
阿里云地址 登录阿里云管理控制台,创建对象存储oss private static final String endpoint = "http://oss-cn-shanghai.aliyu ...
- VMware虚拟机克隆Linux系统引起的网卡问题
1. 手动配置静态网卡地址不生效2. 网卡名变成了eth1[root@localhost network-scripts]# ls |grep ifcfg ifcfg-eth0 ifcfg-lo [r ...
- LeetCode OJ:Majority Element II(主元素II)
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- NSSet基本使用
int main(int argc, const char * argv[]) { @autoreleasepool { //创建一个集合对象 注:如果集合中写了两次或多次同一个对象 打印只能看到一个 ...
- Precision/Recall、ROC/AUC、AP/MAP等概念区分
1. Precision和Recall Precision,准确率/查准率.Recall,召回率/查全率.这两个指标分别以两个角度衡量分类系统的准确率. 例如,有一个池塘,里面共有1000条鱼,含10 ...
- Linux字符界面访问U盘
首先查看U盘所在位置 fdisk -l 只需查看最后分区情况,例如找到U盘的位置为:/dev/sda1(视系统而定) 创建文件夹(用于挂载U盘内容) mkdir /mnt/usb 挂载 mount / ...