//适配器
/**
* 继承RecyclerView.Adapter<LinearAdapter.ViewHolder>
*/
public class StaggeredAdapter extends RecyclerView.Adapter<StaggeredAdapter.ViewHolder> {
private List<UserBean> list;
private Context context;
public StaggeredAdapter(Context context) {
this.context = context;
list = new ArrayList<>();
}
//相当于上下文 Content
public void addItem(UserBean userBean){
if (userBean != null){
list.add(userBean);
}
}
/**
* 静态内部类 ViewHolder
*/
static class ViewHolder extends RecyclerView.ViewHolder {
//列出所有需要用到的控件
private final TextView name;
private final ImageView image;
//写一个构造方法,找到所有的控件(就是获取资源ID)
public ViewHolder(@NonNull View itemView) {
super(itemView);
name = itemView.findViewById(R.id.text_linear);
image = itemView.findViewById(R.id.image_linear);
}
}
@Override
public void onBindViewHolder(@NonNull StaggeredAdapter.ViewHolder viewHolder, int position) {
//获取索引值
UserBean userBean = list.get(position);
viewHolder.name.setText(userBean.getName());
Glide.with(context).load(userBean.getImage()).into(viewHolder.image);
}
@Override
public int getItemCount() {
return list.size();
}
@NonNull
@Override
public StaggeredAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int position) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recycler_staggered_item,viewGroup,false);
return new ViewHolder(view);
}
}
//主页
public class recycle_staggered extends Fragment {
private final int mSpanCount = 2;
private RecyclerView recyclerView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.recycler_staggered,container,false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recyclerView = view.findViewById(R.id.recyclerview_Staggered);
initView();
}
private void initView() {
//使用瀑布流布局,第一个参数 spanCount 一行几个,第二个参数 orentation 排列方向
StaggeredGridLayoutManager gridLayoutManager = new StaggeredGridLayoutManager(mSpanCount,StaggeredGridLayoutManager.VERTICAL);
//设置布局管理器
recyclerView.setLayoutManager(gridLayoutManager);
//实例化适配器
StaggeredAdapter staggeredAdapter = new StaggeredAdapter(getActivity());
int[] avatarArray = new int[]{R.drawable.zn1,R.drawable.zn2,R.drawable.zn3};
for (int i = 0; i < 30; i++) {
UserBean userBean = new UserBean();
userBean.setName("清仓甩卖,仅需¥88");
userBean.setImage(avatarArray[i % avatarArray.length]);
staggeredAdapter.addItem(userBean);
}
//设置适配器
recyclerView.setAdapter(staggeredAdapter);
DividerGridItemDecoration dividerGridItemDecoration = new DividerGridItemDecoration(getActivity());
recyclerView.addItemDecoration(dividerGridItemDecoration);
}
}