玩不坏的小黑

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

[i=s] 本帖最后由 玩不坏的小黑 于 2016-5-10 10:25 编辑 [/i]

[align=center][size=6][color=#a0522d][b]RecyclerView使用教程[/b][/color][/size][/align]
[align=left][size=4][color=#a0522d]前两个星期用到只学习了使用方法,没完全理解,这次用就做个教程用于学习[/color][/size][/align][align=left]
[img]static/image/hrline/line5.png[/img]

[/align][align=left][size=5][color=#2e8b57]第一步:[/color][/size][/align]
[align=left][size=3][color=#a0522d]引用Recyclerview 包[/color][/size][/align]
[align=left][size=3][color=#a0522d]在gradle文件里面添加[/color][/size][/align][align=left][size=3][color=#a0522d]
[/color][/size][/align]
[code]dependencies {
compile'com.android.support:recyclerview-v7:23.1.1'
}[/code]
[align=left][size=5][color=#008000]第二步:[/color][/size][/align]
[align=left][size=3][color=#a0522d]在XMl里面添加Recyclerview[/color][/size][/align]
[align=left]<[color=#000080][b]android.support.v7.widget.RecyclerView
[/b][/color][color=#660e7a][b]android[/b][/color][color=#0000ff][b]:id=[/b][/color][color=#008000][b]"@+id/recyclerview"
[/b][/color][color=#660e7a][b]android[/b][/color][color=#0000ff][b]:layout_width=[/b][/color][color=#008000][b]"match_parent"
[/b][/color][color=#660e7a][b]android[/b][/color][color=#0000ff][b]:layout_height=[/b][/color][color=#008000][b]"match_parent"[/b][/color]>
</[color=#000080][b]android.support.v7.widget.RecyclerView[/b][/color]>[/align]
[align=left][size=5][color=#2e8b57]第三步:在activity里面findViewById()[/color][/size][/align][code]recyclerView.findViewById(R.id.recyclerview);[/code]

[align=left][size=5][color=#2e8b57]第四步:设置布局管理器,布局管理器待会再详细研究[/color][/size][/align][color=#2f4f4f]
[/color][code]recyclerView.setLayoutManager(new LinearLayoutManager(this));[/code]
[align=left][size=5][color=#2e8b57]第五步:新建一个适配器[/color][/size][/align]
[code]package com.xiaohei.recyclerview;

import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

/**

  • Created by xiaohei on 2016/5/5.
    */
    public class RecyclerviewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    List Items;

    public RecyclerviewAdapter() {

     Items = new ArrayList<>();
    
     for(int i = 0 ; i<100;i++){
         Items.add("小黑 " + i);
     }
    

    }

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

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

    @Override
    public int getItemCount() {
    return Items.size();
    }

    class xiaoheiHolder extends RecyclerView.ViewHolder{
    TextView mTextView;
    public xiaoheiHolder(View itemView) {
    super(itemView);
    mTextView = (TextView) itemView.findViewById(R.id.item_id);
    }
    }

}[/code][align=left]recyclerview的适配器流程是这样的[/align][align=left]首先:getCount 获取到元素个数[/align][align=left]然后创建view[/align][align=left]{[/align][align=left]创建view的时候要用parent获取到item的view,然后new一个Holder[/align][align=left]item的view要写一个新的layout文件[/align]
[code]@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,null);
RecyclerView.ViewHolder holder= new xiaoheiHolder(view);
return holder;
}[/code]
[align=left]然后return holder[/align][align=left]}[/align][align=left]然后再绑定[/align][align=left]{[/align][align=left]绑定的时候就是填充数据[/align]

[align=left][size=5][color=#2e8b57]第六步:在activity里面给recyclerview设置适配器[/color][/size][/align][align=left][backcolor=#e4e4ff]recyclerView[/backcolor].setAdapter([color=#000080][b]new [/b][/color]RecyclerviewAdapter());[/align]
然后运行就可以看到这个界面:[attach]455975[/attach]

基础部分就先记这么多
recyclerview的灵活性远不止这样
找时间记录下布局管理器和然后还有一个ViewType的使用

查看回复
0%
粤ICP备18082987号-1 浙公网安备 33010902001746号
友情链接:
喵宅苑
喵空间社区程序
络合兔
技术宅
腕能新趣
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の博客