RecylerView实现瀑布流效果

在activity中写入

//获取控件
recyclerView = view.findViewById(R.id.rv);

    RecyProcenter procenter = new RecyProcenter(this);
    procenter.RecyNets("http://www.zhaoapi.cn/product/getCarts?uid=71&source=1.0.1\t");
    recyAdapder = new RecyAdapder(mList, getContext());
    return view;
}
@Override
public void isRecyList(List list) {
     mList.addAll(list);
    handler.post(new Runnable() {
        @Override
        public void run() {

//设置适配器
recyAdapder.setList(mList);
recyclerView.setAdapter(recyAdapder);
}
});

}
//Okhttp网络请求后更新UI使用
Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);


    }
};

编写Adapder类
package com.umeng.soexample.adapder;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.squareup.picasso.Picasso;
import com.umeng.soexample.R;
import com.umeng.soexample.bean.User;

import java.util.ArrayList;
import java.util.List;

public class RecyAdapder extends RecyclerView.Adapter<RecyAdapder.MyViewHolder> {
private List<User.DataBean> list;
private Context mContext;

public RecyAdapder(List<User.DataBean> list, Context mContext) {
    this.list = list;
    this.mContext = mContext;
}

public void setList(List<User.DataBean> list) {
    this.list = list;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(mContext).inflate(R.layout.recyitem, viewGroup, false);
    return new MyViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {

//截取图片
User.DataBean dataBean = list.get(i);
List<User.DataBean.ListBean> list = dataBean.getList();
for (int i1 = 0; i1 < list.size(); i1++) {
User.DataBean.ListBean listBean = list.get(i1);
String images = listBean.getImages();
int i2 = images.indexOf("|");
if (i2 != -1) {
String imagess = images.substring(0, i2);
Picasso.with(mContext).load(imagess).into(myViewHolder.textView);
} else {
Picasso.with(mContext).load(images).into(myViewHolder.textView);
}

    }
    //设置瀑布流布局
    if (i % 2!= 0) {
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(myViewHolder.textView.getLayoutParams());
        params.setMargins(0,100,0,0);
        myViewHolder.textView.setLayoutParams(params);
    }else{
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(myViewHolder.textView.getLayoutParams());
        params.setMargins(0,20,0,0);
        myViewHolder.textView.setLayoutParams(params);

    }
}

@Override
public int getItemCount() {
    return list == null ? 0 : list.size();
}

class MyViewHolder extends RecyclerView.ViewHolder {
    ImageView textView;

    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        textView = itemView.findViewById(R.id.tq);

    }
}

}

猜你喜欢

转载自blog.csdn.net/zxcce21/article/details/84259642