有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 354|回复: 1
收起左侧

android组件 RecyclerView使用教程 第一发:基础使用

[复制链接]

签到天数: 3 天

连续签到: 1 天

[LV.2]偶尔看看I

15

主题

71

好友

1万

积分

懒人

玩不坏的小黑

积分
16068
发表于 2016-5-10 10:09:45 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
本帖最后由 玩不坏的小黑 于 2016-5-10 10:25 编辑

RecyclerView使用教程

前两个星期用到只学习了使用方法,没完全理解,这次用就做个教程用于学习


                               
登录/注册后可看大图


第一步:

引用Recyclerview 包

在gradle文件里面添加


  1. <span style="line-height: 1.5; background-color: rgb(255, 255, 255);">dependencies {</span>
  2. <span style="line-height: 1.5; background-color: rgb(255, 255, 255);">    compile'com.android.support:recyclerview-v7:23.1.1'</span>
  3. <span style="line-height: 1.5; background-color: rgb(255, 255, 255);">}</span>
复制代码

第二步:

在XMl里面添加Recyclerview

<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>

第三步:在activity里面findViewById()
  1. recyclerView.findViewById(R.id.recyclerview);
复制代码


第四步:设置布局管理器,布局管理器待会再详细研究

  1. recyclerView.setLayoutManager(new LinearLayoutManager(this));
复制代码

第五步:新建一个适配器

  1. package com.xiaohei.recyclerview;

  2. import android.support.v7.widget.LinearLayoutManager;
  3. import android.support.v7.widget.RecyclerView;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.BaseAdapter;
  8. import android.widget.TextView;

  9. import java.util.ArrayList;
  10. import java.util.List;

  11. /**
  12. * Created by xiaohei on 2016/5/5.
  13. */
  14. public class RecyclerviewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  15.     List<String> Items;


  16.     public RecyclerviewAdapter() {

  17.         Items = new ArrayList<>();

  18.         for(int i = 0 ; i<100;i++){
  19.             Items.add("小黑 " + i);
  20.         }
  21.     }

  22.     @Override
  23.     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  24.         View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,null);
  25.         RecyclerView.ViewHolder holder= new xiaoheiHolder(view);
  26.         return holder;
  27.     }

  28.     @Override
  29.     public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
  30.         xiaoheiHolder XHolder = (xiaoheiHolder) holder;
  31.         XHolder.mTextView.setText(Items.get(position));
  32.     }

  33.     @Override
  34.     public int getItemCount() {
  35.         return Items.size();
  36.     }

  37.     class xiaoheiHolder extends RecyclerView.ViewHolder{
  38.         TextView mTextView;
  39.         public xiaoheiHolder(View itemView) {
  40.             super(itemView);
  41.             mTextView = (TextView) itemView.findViewById(R.id.item_id);
  42.         }
  43.     }


  44. }
复制代码
recyclerview的适配器流程是这样的
首先:getCount 获取到元素个数
然后创建view
{
创建view的时候要用parent获取到item的view,然后new一个Holder
item的view要写一个新的layout文件

  1. @Override
  2. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  3.     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,null);
  4.     RecyclerView.ViewHolder holder= new xiaoheiHolder(view);
  5.     return holder;
  6. }
复制代码

然后return holder
}
然后再绑定
{
绑定的时候就是填充数据



第六步:在activity里面给recyclerview设置适配器
recyclerView.setAdapter(new RecyclerviewAdapter());

然后运行就可以看到这个界面:

效果图1

效果图1


基础部分就先记这么多
recyclerview的灵活性远不止这样
找时间记录下布局管理器和然后还有一个ViewType的使用
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

3

主题

8

好友

3486

积分

序章

积分
3486
发表于 2016-6-25 11:45:20 | 显示全部楼层
学安卓的欸
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(基宅) ( 粤ICP备18082987号-1 | 浙公网安备 33010902001746号 )

GMT+8, 2024-4-26 19:00 , Processed in 0.239067 second(s), 14 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表