【Android】关于 RecycleView 的学习以及出现 OutOfMemoryError问题解决

【爱迪】 学习RecycleView 基础学习全  最后有关于出现 OutOfMemoryError (内存溢出) 错误解决方法

  

 

实现后效果 可以上下滚动,每张图片下面对应着一行文字。

 

1. 在build.gradle中引入此依赖

 

implementation 'androidx.recyclerview:recyclerview:1.1.0'

 

 

2. 创建一个类,设置了两个变量 ,再实现它们的构造器和 get ,set 方法

 

3.   再创建一个 HaiZei 类对应的布局

      线性布局里包含了一张图片(ImageView) 和 一段文本(TextView)

LinearLayout:线性布局(这里设置成垂直方向上的)
layout_gravity="center" :居中(由于LinearLayout设置了orientation="vertical" 所以这里结合起来就是:垂直方向居中)
scaleType="fitXY" 把图片按照指定的大小在ImageView中显示,拉伸显示图片,不保持原比例,填满ImageView.
textStyle="bold" 将字体为粗体


有关 scaleType: https://blog.csdn.net/qq_34902522/article/details/76682293

4. 在布局上面添加 RecyclerView 控件

 


 

 5. 创建布局的适配器

 

 

 

 

 

 

 5.1  (1)Adapter 类继承 RecyclerView.Adapter<VH>(VH是ViewHolder的类名)   

   (2) 创建类的构造方法

  (3)创建ViewHolder:在Adapter中创建一个继承 RecyclerView.ViewHolder 的静态内部类

hzImage = itemView.findViewById(R.id.view_image);
hzName = itemView.findViewById(R.id.view_describe);//这两句代码的意思是引用布局里面的 图片 和 文字 两部分

 

   

 

 

 

 

 6. 再接着 实现重写下面这三个方法(crtl + O 重写)

 

 

 

6.1   用来创建ViewHolder实例,再将加载好的布局传入构造函数,最后返回ViewHolder实例


View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.picture_view,null);// 这是 XML 布局资源被解析并转换成 View对象(xml文件解析成视图)

 

ViewHolder 的理解

要想使用 ListView 就需要编写一个 Adapter 将数据适配到 ListView上,而为了节省资源提高运行效率,一般自定义类 ViewHolder 来减少 findViewById() 的使用以及避免过多地 inflate view,从而实现目标。

作者:李铭淋
链接:https://www.jianshu.com/p/a14feb480804
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

6.2   用于对RecyclerView的子项进行赋值,会在每个子项滚动到屏幕内的时候执行

position : 

 

 

 

 

 

 

 

6.3 返回 Item 的 总个数,这个方法就类似于BaseAdapter的getCount方法了,即总共有多少个条目

 

 7. 创建了一个新的 Activity

 

 

 

 

7.1

 

 

 

 7.2 初始化数据

 

 

8. 出现的错误

 

运行项目滑动到最下面出现 OutOfMemoryError (内存溢出) 错误

可以通过在 AndroidManifest,xml 中添加如下解设置决:

  

  android:hardwareAccelerated="false"
  android:largeHeap="true"

 

 

 

 

参考文献:

RecyclerView : https://www.jianshu.com/p/4f9591291365

 

         https://blog.csdn.net/u012721519/article/details/54692366

posted @ 2020-03-05 22:26  爱迪的懂  阅读(448)  评论(0)    收藏  举报