Android之RecycleView
来源:互联网 发布:女生网络名称大全 编辑:程序博客网 时间:2024/06/05 15:01
需要导入依赖包
RecycleView布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.recyclerviewdemo.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView></LinearLayout>
自定义RecycleView布局(item)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@mipmap/ic_launcher"/> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello RecyclerView"/></LinearLayout>
MainActivity代码
package com.bwie.recyclerviewdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.DividerItemDecoration;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements MyAdapter.OnItemClickListener { private RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recyclerView); //设置一个线性布局管理器 //HORIZONTAL 设置水平方向 垂直方向 false true true 反转 倒着显示 false 顺序显示 recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)); //设置一个网格管理器 //Vertical 代表显示多少列 //Horizontal 代表显示多少行 //recyclerView.setLayoutManager(new GridLayoutManager(this,3,GridLayoutManager.HORIZONTAL,false)); //设置分割线 recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); //设置适配器 MyAdapter adapter = new MyAdapter(this); recyclerView.setAdapter(adapter); //设置点击事件 adapter.setOnItemClickListener(this); } @Override public void setOnItemClick(View view, int position) { //条目点击事件 Toast.makeText(this, "条目" + position, Toast.LENGTH_SHORT).show(); } @Override public void setOnItemLongClick(View view, int position) { //长按事件 Toast.makeText(this, "长按条目"+position, Toast.LENGTH_SHORT).show(); }}MyAdapter适配器
package com.bwie.recyclerviewdemo;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 org.w3c.dom.Text;/** * Created by stephen on 2017/12/7. */public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private Context context; public MyAdapter(Context context){ this.context = context; } /** * * @param parent * @param viewType * @return */ @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item,parent,false); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } //生命自己的一个事件回调接口 public interface OnItemClickListener{ //条目点击事件 void setOnItemClick(View view,int position); //条目长按事件 void setOnItemLongClick(View view,int position); } private OnItemClickListener onItemClickListener; public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } @Override public void onBindViewHolder(MyAdapter.ViewHolder holder, final int position) {
if(position %2 == 0) { //设置文本 holder.tv.setText("默认偶数行死数据"); }else{ holder.tv.setText("默认奇数行死数据"); } if(null != onItemClickListener) { //回调点击事件 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //回调 onItemClickListener.setOnItemClick(v,position); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onItemClickListener.setOnItemLongClick(v,position); return true;//消费掉 } }); } } @Override public int getItemCount() {//条目数 return 20; } //生命我们自己的ViewHolder class ViewHolder extends RecyclerView.ViewHolder{ TextView tv; //View itemViews; public ViewHolder(View itemView) { super(itemView); //itemViews = itemView; tv = itemView.findViewById(R.id.tv); } }}
阅读全文
0 0
- Android之RecycleView
- android基础开发之RecycleView
- Android之RecycleView和CardView
- Android 开发之RecycleView的简单使用
- android-RecycleView的导入之旅
- Android之AutoCompleteTextView自动匹配RecycleView
- Android高级控件之RecycleView,Gallery,ViewPage
- android recycleView
- Android RecycleView
- Android-RecycleView
- android之RecycleView之ItemTouchHelper 处理拖拽、滑动删除
- android Material Design之 ToolBar+TabLayout+recycleView的效果实现
- Android自学之路,RecycleView的使用,添加与删除
- android开发 RecycleView之No adapter attached; skipping layout
- Android学习之路----RecycleView的简单实用
- Android之---RecycleView简单介绍(各种用法的简介)
- Android之RecycleView下拉刷新上滑加载更多
- android开发 RecycleView之No adapter attached; skipping layout
- 文章标题
- Guava字符串处理Joiner、Splitter
- spring cloud搭建eureka+zuul+hystrix+config
- C++文件读写详解(ofstream,ifstream,fstream)
- Android 7.0调用第三方库出现加载失败的问题
- Android之RecycleView
- Matplolib教程及查询
- 使用jquery刷新iframe
- C# 添加、修改和删除Excel迷你图
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- 基于微信api网页开发整理
- 搭建Hadoop集群,一个月6T的数量需要几台服务器
- 7.配置服务器(config)
- 关于跨域请求和JSONP