2019独角兽企业重金招聘Python工程师标准>>>

(1)普通适配器

/**
 * Created by lvxinxin on 2017/9/26.
 * 怎么写适配。
 * 因为RecyclerView 他里面封装好了Adapter和ViewHolder
 * 所以我们要使用源码跟我们封装好的
 * 1:自己写一个类继承RecyclerView.Adapter它里面有个泛型就是ViewHolder
 * 因为ViewHolder源码也封装好了。但是我们自己用的还得要写一个VIewHolder只需要继承他即可
 */

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.Holder> {

private ArrayList<String> mList;
    
    public MyAdapter(ArrayList<String> mList) {
        this.mList = mList;
    }
    //创建一个ViewHolder并绑定一个视图模板
    /**
     * 第一步加载视图模板
     * 第二步把创建ViewHolder对象
     * 第三步返回VIewHOlder对象即可
     * @param parent
     * @param viewType
     * @return
     */
    @Override
    public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recy_item, parent, false);
        Holder holder = new Holder(view);
        return holder;
    }

//成功过后我就可以得到里面组件进行赋值
    @Override
    public void onBindViewHolder(Holder holder, int position) {
        holder.mText.setText(mList.get(position));
    }
    //返回多少条数
    @Override
    public int getItemCount() {
        return mList.isEmpty() ? 0 : mList.size();
    }

//初始化组件还是在Holder里面
    class Holder extends RecyclerView.ViewHolder {
        private TextView mText;
        public Holder(View itemView) {
            super(itemView);
            mText = (TextView) itemView.findViewById(R.id.Recy_Text);
        }
    }
}
///

(2)瀑布流适配器

public class MyPuAdapter extends RecyclerView.Adapter<MyPuAdapter.Holder> implements View.OnClickListener{
    private ArrayList<MiShuBean> mList;

public MyPuAdapter(ArrayList<MiShuBean> mList) {
        this.mList = mList;
    }
    @Override
    public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.pubuliu_item,parent,false);
        Holder holder = new Holder(view);
        view.setOnClickListener(this);
        return holder;
    }

@Override
    public void onBindViewHolder(Holder holder, int position) {
        //瀑布流怎么实现?
        //宽度是一样的不用管  但是高度得改  所有的高和宽都是放在 ViewGroup.LayoutParams
        ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
        Random random = new Random();
        //随机高度即可
        layoutParams.height = random.nextInt(400)+200;
        holder.itemView.setLayoutParams(layoutParams);
        holder.mImage.setImageResource(mList.get(position).getImage());
        holder.itemView.setTag(position);
    }

@Override
    public int getItemCount() {
        return mList.isEmpty()?0:mList.size();
    }

class Holder extends RecyclerView.ViewHolder{
        private ImageView mImage;
        public Holder(View itemView) {
            super(itemView);
            mImage = (ImageView) itemView.findViewById(R.id.Pubu_Image);
        }
    }
/

(3)RecycleView的显示格式(如果显示样式不设置,它的效果就不会出来,并且也不会报错)

1. 线性样式

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this);
        mRecy.setLayoutManager(linearLayoutManager);

2.GridVIew样式

GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 2);
        mRecy.setLayoutManager(gridLayoutManager);

3.瀑布流样式

StaggeredGridLayoutManager layoutmaager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        mRecy.setLayoutManager(layoutmaager);

转载于:https://my.oschina.net/u/3730650/blog/1579156

RecycleView的普通适配器(另加RecycleView的格局格式)相关推荐

  1. R语言读取(加载)txt格式数据为dataframe、可视化绘制温度直方图、自定义设置坐标轴名称字体大小

    R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐标轴名称字体大小 目录 R语言读取(加载)txt格式数据为dataframe.可视化绘制温度直方图.自定义设置坐 ...

  2. OpenCasCade学习笔记(三):加载显示STEP格式图片,并实现平移、缩放和旋转操作

    OpenCasCade学习笔记(三):加载显示STEP格式图片,并实现平移.缩放和旋转操作 C3DWidget.h #pragma once#include <QtWidgets/QApplic ...

  3. R语言读取(加载)txt格式数据为dataframe

    R语言读取(加载)txt格式数据为dataframe 目录 R语言读取(加载)txt格式数据为dataframe R语言是解决什么问题的? R语言读取(加载)txt格式数据为dataframe 安利一 ...

  4. plsql 连接oralce数据库,报ora 12557 tns 协议适配器不可加载错误

    使用plsql 连接oracle 数据库报ora 12557 错误: 解决方案: 1:首先确保服务中的service以及监听器都开启 2:F:\app\Administrator\product\11 ...

  5. 初次转化max模型为3D Tiles失败、cesium加载一个obj格式的3D 机房模型

    先下一个3D max模型,后缀为.max:用3D max打开:网上下的其他模型查看器不能打开: 打开时会出错误提示:对max模型文件和3d max还不了解: 打开后如下:是一个机房的3D模型: 下载一 ...

  6. PyTorch 加载超大 Libsvm 格式数据

    对于比较大的数据集,比如好几个T的数据,没有办法一次性全部加载进内存,因此需要构建一个可迭代的数据集IterableDataset. 迭代读取文本文件 要借助pytorch的IterableDatas ...

  7. php导出excel字体加粗,phpexcel 导出格式,字体调整

    对于小数量数据(低于1000)条,如果出现导出较慢,或者网页超时,那可能是phpexcel样式文件写错地方了,可能和数据混在一起,导致较慢. 如果数据太多导致超时或者内存溢出,可添加 set_time ...

  8. 2014年7月8日星期二(DEMO8-8加载3DSMAX ASCII格式模型.ASC)

    1读取物体名,顶点数和多边形数 2读取顶点列表 3读取每个多边形的定义及其RGB材质颜色信息 缺点是:不能指定多边形是单面还是双面的,不支持纹理映射信息和光照模型信息等,只提供了每个多边形的颜色. 定 ...

  9. Python基础知识之pandas加载本地txt格式或csv格式的数据

    文章目录 前言 一.pandas是什么? 二.使用步骤 1.读取txt格式的数据 2.读取CSV格式的数据 三.总结 前言 今天需要使用pytorch处理自己的数据,由于数据存储格式为txt和csv, ...

  10. 如何使用矢量图形数据导出可以在高德百度等互联网地图上加载的JSON格式数据

    本文以广东省行政区划为例介绍如何使用矢量图形数据导出可以在高德百度等互联网地图上加载的省级行政区划边界JSON数据. 第一步用GIS相关工具,如ArcGIS.MapGIS.QGIS等工具加载广东省域的 ...

最新文章

  1. 机器学习中的维度灾难
  2. oracle易忘函数用法(5)
  3. IOS基础基于pod上手体验FMDB框架
  4. 小米为其他手机适配rom_让小米引以为傲的MIUI,为什么不再给其它手机适配了?...
  5. 处理Redis里的数据
  6. kubesphere_KubeSphere容器混合云一个人也能轻松运维的K8s
  7. fft_fft_control
  8. Android 蓝牙AVRCP 专题(2)-----黑名单
  9. OHSAS18000认证(转载)
  10. 在Mac和PC之间共享鼠标键盘(拥有多台电脑者必看)
  11. 9个常用的3D建模软件,你还知道哪些?
  12. Mac下文本编辑器无法生成html文件
  13. 浙江高考python 学生采访_实录|我采访了12个在校大学生,高考前100天他们这样过...
  14. 窄带物联网(NB-IoT)科技的关键技术是什么?
  15. DNS(域名解析系统)
  16. CodeForces - 710F String Set Queries
  17. FastReport .NET2022.2x,完整的源代码可用
  18. Linux/macOS 安装 Kaldi
  19. 计算机组成原理——运算器实验
  20. 如何在matlab中建立水箱模型_在MATLAB中实现水箱液位控制系统的设计

热门文章

  1. IEEE_Tec_Digtal Signal Analog Signal
  2. CSS3 Media Queries模板
  3. org.apache.jasper.JasperException: /index.jsp(14,2) The s:form tag declares that it accepts dyna
  4. 安卓Gallery配合ImageSwitcher不显示图片
  5. Render Monkey中可渲染纹理的Clear Color
  6. Java开发笔记(一百三十四)Swing的基本对话框
  7. vue中Component错误
  8. UVA11082 行列模型
  9. [转][Err] 1452 - Cannot add or update a child row: a foreign key constraint fail
  10. 数据帮助类(DataHelper)