使用RecyclerView实现瀑布流

准备工作

  • 添加网络权限,在此项目中用于获取网络图片
  • 添加Glide依赖,用于加载图片
  • 启用dataBinding,也可不用dataBinding,这里主要是练习一下

添加网络权限
implementation ‘com.github.bumptech.glide:glide:4.11.0’//图片加载

添加依赖/启用dataBinding

布局

这里用了dataBinding的布局,在最外层是layout,好处是不用一个个findview控件了,data中为空,表示我们这里不需要数据

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <data>

    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
</layout>
rv_item.xml

variable中的type,RVBean是我们自定义的一个Javabean
也就是get/set那个,懂我意思吧

Textview中的android:text="@{item.text}" ,item是我们在variable中name的值,由我们自己指定,text就是RVBean中自己定的String类型的值

而ImageView中的app:url="@{item.url}",url是在RVBean中使用的BindingAdapter进行自定的属性,用于指定图片的url

指定了variable和上面的属性,我们连id都可以不用加了,后面直接setItem()就行了【PS:因为我们这里的name是item,所以就是setItem().如果是data,后面就要用setData()

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>

        <variable
            name="item"
            type="com.cq.recyclerbinding.RVBean" />
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <androidx.cardview.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            app:cardCornerRadius="8dp"
            app:cardElevation="4dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:adjustViewBounds="true"
                    android:scaleType="fitXY"
                    app:url="@{item.url}" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textAlignment="center"
                    android:layout_margin="4dp"
                    android:text="@{item.text}" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>
    </LinearLayout>
</layout>

代码

终于要到主角了,先创建RVBean

RVBean.class

可以看到 @BindingAdapter(“url”) ,下面的loadImg就是使用Glide加载的图片,这个方法一定要是静态(static)的

public class RVBean {
    private String url;
    private String text;

    @BindingAdapter("url")
    public static void loadImg(ImageView imageView, String url) {
        Glide.with(imageView).load(url).into(imageView);
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public RVBean(String url, String text) {
        this.url = url;
        this.text = text;
    }
}

RVAdapter.class

RecyclerView的适配器,在布局中加入了dataBinding的layout标签,就会自动生成binding类,比如我们之前的 rv_item.xml就会生成一个RvItemBinding,我们直接获取这个binding就可以操作视图了

获取到了RvItemBinding,可以直接setItem(RVBean),这个item也就是我们在布局中命的名字,如果你命的是data,那就是setData(),同理如果你命的是rvbean,那就是setRvbean()

public class RVAdapter extends RecyclerView.Adapter<RVAdapter.VH> {
    private Context context;
    private List<RVBean> rvBeans;

    public RVAdapter(Context context, List<RVBean> rvBeans) {
        this.context = context;
        this.rvBeans = rvBeans;
    }

    @NonNull
    @Override
    public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new VH(DataBindingUtil.inflate(
                LayoutInflater.from(context), R.layout.rv_item, parent, false).getRoot());
    }

    @Override
    public void onBindViewHolder(@NonNull VH holder, int position) {
        RvItemBinding binding = DataBindingUtil.bind(holder.itemView);
        binding.setItem(rvBeans.get(position));
    }

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

    public class VH extends RecyclerView.ViewHolder {
        public VH(@NonNull View itemView) {
            super(itemView);
        }
    }
}

MainActivity.class

因为我们之前的activity_main.xml也用了layout标签,所以我们直接获取ActivityMainBinding来操作

public class MainActivity extends AppCompatActivity {
    private ActivityMainBinding binding;
    private List<RVBean> rvBeanList = new ArrayList<>();
    private RVAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false);
        setContentView(binding.getRoot());
        initData();
    }

    private void initData() {
        for (int i = 0; i < 20; i++) {
            rvBeanList.add(new RVBean("data:image/jpeg;base64,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", "text" + i));
            rvBeanList.add(new RVBean("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3656208536,1275700259&fm=26&gp=0.jpg", "text" + i));
            rvBeanList.add(new RVBean("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=342143065,3756070031&fm=26&gp=0.jpg", "text" + i));
        }
        adapter = new RVAdapter(this, rvBeanList);
        //主要就是这个LayoutManager,就是用这个来实现瀑布流的,3表示有3列(垂直)或3行(水平),我们这里用的垂直VERTICAL
        binding.rv.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));
        binding.rv.setAdapter(adapter);
    }
}

最后/效果

我也不怎么会写教程,就只是贴代码,上面也是全部的代码,直接copy下来就能用😂最后就来看看效果图
横屏
竖屏

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值