android RecyclerView的简单用法
来源:互联网 发布:免费手机数据恢复 编辑:程序博客网 时间:2024/05/22 03:39
最近在研究listview的横向展示数据。竖向展示数据,这个不用说估计大家都懂。那么首先展示一下我的演示界面。
在这里,我使用的是RecyclerView+CardView这两者结合。展示出卡片式风格的界面。那么接下来就是RecyclerView的简单使用步骤。
添加RecyclerView和CardView的关联库
compile ‘com.android.support:recyclerview-v7:24.0.0’
compile ‘com.android.support:cardview-v7:24.0.0’
- 在xml布局里面进行引用
在主布局里面的xml,引用RecyclerView。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.listviewdemo1.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
在RecyclerVew.Adapter的xml里面引用
<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_margin="10dp" /> <ImageView android:id="@+id/img" android:layout_width="200dp" android:layout_height="200dp" android:scaleType="fitXY" android:layout_marginLeft="10dp"/> </LinearLayout></android.support.v7.widget.CardView>
- mainactivity的主要代码
package com.example.administrator.listviewdemo1;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import com.example.administrator.listviewdemo1.adapter.ListViewAdapter;import java.util.ArrayList;import butterknife.ButterKnife;import butterknife.InjectView;public class MainActivity extends AppCompatActivity { @InjectView(R.id.lv) RecyclerView lv; private ArrayList<String> titles = new ArrayList<String>(); private int[] imgs = {R.drawable.list_one,R.drawable.list_two,R.drawable.list_three,R.drawable.list_four, R.drawable.list_five,R.drawable.list_six,R.drawable.list_seven,R.drawable.list_eight, R.drawable.list_nine,R.drawable.list_ten}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); initView(); } private void initView() { for (int i = 0;i<10;i++){ titles.add("第"+i+"张图片"); } // 不改变的recyclerview布局尺寸 lv.setHasFixedSize(true); // 使用垂直线性布局管理器 LinearLayoutManager mLayoutManager = new LinearLayoutManager(this); mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); lv.setLayoutManager(mLayoutManager); ListViewAdapter adapter = new ListViewAdapter(this,titles,imgs); lv.setAdapter(adapter); adapter.notifyDataSetChanged(); }}
- ListViewAdapter的代码内容如下
package com.example.administrator.listviewdemo1.adapter;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.ImageView;import android.widget.TextView;import android.widget.Toast;import com.example.administrator.listviewdemo1.R;import java.util.ArrayList;/** * Created by Administrator on 2016/7/15. */public class ListViewAdapter extends RecyclerView.Adapter<ListViewAdapter.ViewHolder>{ private Context mContext; private ArrayList<String> mDatas; private int[] mIms; public ListViewAdapter(Context context,ArrayList<String> data,int[] img){ this.mContext = context; this.mDatas = data; this.mIms = img; } /** * 相当于BaseAdapter的ViewHolder */ public static class ViewHolder extends RecyclerView.ViewHolder{ TextView tv; ImageView img; public ViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.title); img = (ImageView) itemView.findViewById(R.id.img); } } /** * 相当于getView() * @param parent * @param viewType * @return */ @Override public ListViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.list_adapter,null); ViewHolder holder = new ViewHolder(view); return holder; } /** * 在这里进行控件的赋值 * @param holder * @param position */ @Override public void onBindViewHolder(ListViewAdapter.ViewHolder holder, final int position) { holder.img.setImageResource(mIms[position]); holder.tv.setText(mDatas.get(position)); //设置监听 holder.img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(mContext,position+"个",Toast.LENGTH_SHORT).show(); } }); } /** * 相当于BaseAdapter的getItemCount() * @return */ @Override public int getItemCount() { return mDatas.size(); }}
以上就是RecyclerView的简单用法,
0 0
- android RecyclerView的简单用法
- RecyclerView的简单用法
- Recyclerview-的简单用法
- Android列表RecyclerView的用法
- Android RecyclerView的基本用法
- Android RecyclerView 的简单使用
- [Android]RecyclerView的简单示例
- android RecyclerView的简单使用
- Android简单的实现RecyclerView
- Android RecyclerView的简单了解
- Android RecyclerView 的简单使用
- Android RecyclerView 和CardView的用法
- Android中RecyclerView的基本用法
- Android RecyclerView 你不知道的用法
- Android控件RecyclerView的基本用法
- 简单的Android RecyclerView 使用小Demo
- Android 简单的介绍下 RecyclerView
- Android常用控件--RecyclerView的简单使用
- rails AJAX方法 操作后需要执行js文件中命令的方法
- HDU 2111 Saving HDU
- Python行读取文件进行拷贝
- Codeforces 689D. Friends and Subsequences(二分/尺取 + ST表)
- 积木游戏 纪中 1440 类dp 预处理
- android RecyclerView的简单用法
- 何为Web App,何为Hybird App
- java虚拟机内存分配之新生代与老年代GC
- 软件设计之业务逻辑层设计
- Angular2 快速入门 之 环境搭建
- Mac中的Homebrew工具
- kafka监控-KafkaOffsetMonitor
- C++中的资源管理(智能指针)
- 关于Editext弹出键盘的右下角样式简单使用