RecyclerView实现网格视图
我来介绍一下的相关知识,保证小白也能看懂,我注释写的非常的详细,就算看不懂,也可以直接跟着我的思路,把我的代码复制到你的电脑上,一定能做出这个效果。或者你直接拿着我的代码修改一下,变成你自己想要的效果。
我们先看一下效果图:
可以观察看出,这个视图一行3个网格,每个网格中有一张图片和一段文字。
如果你还没有导入的包,请导一下,导过的,请跳过这段话。
请在app文件夹下的build.中的{ }加入:
implementation 'com.android.support:design:28.0.0'
这段话的作用是把一些常用的组件都导入了,包括了,如果你只需要,那你就用这句话:
implementation 'com.android.support:recyclerview-v7:28.0.0'
具体位置如下:
请注意:最后的28.0.0是版本号,每个人下载的版本可能有差异,你可以跟着这句话来写版本号:
implementation 'com.android.support:appcompat-v7:28.0.0'
这句话,每个人的app下面的bulde.的{ }中都会有,如果你这句话后面的版本是26.0.0,那么你就可以写
implementation 'com.android.support:design:26.0.0'
导包完成,现在来看看具体实现流程:
我总共就使用了:
三个组件:、、。
三个 类和两个布局文件:Fruit、、、.xml、.xml。
就可以做出上面的这个效果。
直接上代码好了:
Fruit类中的代码:
package com.example.lenovo.review.Grid;import com.example.lenovo.review.R;
import java.util.ArrayList;
import java.util.List;public class Fruit {String name;int imgId;public Fruit(String name, int imgId) {this.name = name;this.imgId = imgId;}public void setName(String name) {this.name = name;}public void setImgId(int imgId) {this.imgId = imgId;}public String getName() {return name;}public int getImgId() {return imgId;}//这里是一个静态的方法,直接返回一个List列表 public static List<Fruit> getList() {List<Fruit> fruitList = new ArrayList<>();//水果的名字String name[] = {"苹果", "香蕉", "蓝梅", "樱桃", "芒果", "梨子", "草莓","苹果", "香蕉", "蓝梅", "樱桃", "芒果", "梨子", "草莓","苹果", "香蕉", "蓝梅", "樱桃", "芒果", "梨子", "草莓","苹果", "香蕉", "蓝梅", "樱桃", "芒果", "梨子", "草莓","苹果", "香蕉", "蓝梅", "樱桃", "芒果", "梨子", "草莓","苹果", "香蕉", "蓝梅",