Android使用Recycler View实现瀑布流效果

本文介绍了如何使用Recycler View在Android中实现瀑布流效果。通过创建Activity,设置StaggeredGridLayoutManager为两列垂直布局,并构建Adapter,最终展示了一个简单的瀑布流布局。后续可以添加点击事件和处理内存溢出问题。
摘要由CSDN通过智能技术生成

下图是淘宝上瀑布流的一个应用场景,今天我们就来用Recycler View实现以下瀑布流效果

一:创建Activity

activity中 核心代码为

mRvPu.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));

该行代码使用layoutmanager实现一个两列的垂直布局,API解释如下

new StaggeredGridLayoutManager(行数/列数,水平/垂直)

package com.example.fitz.demo4.recycleView;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;

import com.example.fitz.demo4.R;

public class PuRecyclerViewActivity extends AppCompatActivity {
    private RecyclerView mRvPu;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layou
Android中可以使用RecyclerView和GridLayoutManager来实现瀑布流布局,以下是示例代码: 1.在布局文件中添加RecyclerView控件: ``` <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp" /> ``` 2.在Activity或Fragment中初始化RecyclerView和GridLayoutManager,并设置Adapter: ``` // 初始化RecyclerView RecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); // 设置Adapter MyAdapter adapter = new MyAdapter(this, data); recyclerView.setAdapter(adapter); ``` 3.自定义Adapter,并在ViewHolder中设置图片宽高: ``` public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private Context mContext; private List<String> mData; public MyAdapter(Context context, List<String> data) { mContext = context; mData = data; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_layout, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { String imageUrl = mData.get(position); // 加载图片,这里使用了Glide库 Glide.with(mContext).load(imageUrl).into(holder.imageView); // 设置图片宽高 ViewGroup.LayoutParams layoutParams = holder.imageView.getLayoutParams(); layoutParams.height = getRandomHeight(); holder.imageView.setLayoutParams(layoutParams); } @Override public int getItemCount() { return mData.size(); } static class ViewHolder extends RecyclerView.ViewHolder { ImageView imageView; public ViewHolder(@NonNull View itemView) { super(itemView); imageView = itemView.findViewById(R.id.image_view); } } // 获取随机高度 private int getRandomHeight() { return (int) (Math.random() * 300 + 200); } } ``` 4.item_layout布局文件中只需要添加一个ImageView即可: ``` <ImageView android:id="@+id/image_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" /> ``` 以上就是实现Android瀑布流布局的基本代码,可以根据自己的需求进行修改和扩展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值