package com.xscm.modulemain.adapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.xscm.modulemain.R; import com.xscm.moduleutil.bean.CombinedGiftBean; import com.xscm.moduleutil.bean.GiftUserWallBean; import com.xscm.moduleutil.utils.ImageLoader; import com.xscm.moduleutil.utils.ImageUtils; import java.util.ArrayList; import java.util.List; /** * com.example.modulevocal.activity.ui.main * qx * 2025/11/5 */ public class GiftWallAdapter extends BaseAdapter { private List mDataList; public GiftWallAdapter(List dataList) { this.mDataList = dataList; } public void updateData(List newDataList) { this.mDataList = newDataList; notifyDataSetChanged(); } @Override public int getCount() { return mDataList != null ? mDataList.size() : 0; } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 实现 GridView item 的布局和数据绑定 // 这里返回每个 GridView 项的视图 ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_gift_wall, parent, false); holder = new ViewHolder(); holder.textView = convertView.findViewById(R.id.tv_gift_name); holder.iv_gift_image = convertView.findViewById(R.id.iv_gift_image); holder.gift_num = convertView.findViewById(R.id.gift_num); holder.tv_price33 = convertView.findViewById(R.id.tv_price33); holder.rv_gift_user_list = convertView.findViewById(R.id.rv_gift_user_list); holder.tv_gift_values = convertView.findViewById(R.id.tv_gift_values); holder.cl_gift_item = convertView.findViewById(R.id.cl_gift_item); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } GiftUserWallBean.GiftWallBean item = mDataList.get(position); holder.textView.setText(item.getGift_name()); // ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image); holder.tv_price33.setText(item.getGift_price()); TextView tv_number = holder.gift_num; if (item.is_liang()) { holder.tv_gift_values.setVisibility(View.VISIBLE); holder.gift_num.setVisibility(View.VISIBLE); holder.rv_gift_user_list.setVisibility(View.VISIBLE); holder.cl_gift_item.setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_wall_liang); // helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6")); // 点亮的礼物显示高亮和送礼物的用户 tv_number.setText("共计" + item.getTotal_count() + "个"); ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image); // 显示送礼物的用户列表 RecyclerView recyclerView = holder.rv_gift_user_list; // recyclerView.setLayoutManager(new GridLayoutManager(mContext,2,LinearLayoutManager.HORIZONTAL,false)); // recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); recyclerView.setLayoutManager(new LinearLayoutManager(convertView.getContext(), LinearLayoutManager.HORIZONTAL, false) { @Override public boolean canScrollHorizontally() { return false; // 禁止水平滑动 } }); // TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users()); if (item.getTop_users() != null && item.getTop_users().size() > 0) { List displayUsers = new ArrayList<>(); if (item.getTop_users() != null) { int maxDisplay = Math.min(2, item.getTop_users().size()); // 最多显示2个 for (int i = 0; i < maxDisplay; i++) { displayUsers.add(item.getTop_users().get(i)); } } TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers); recyclerView.setAdapter(topUsersAdapter); holder.tv_gift_values.setText("等" + item.getTop_users().size() + "人"); } } else { holder.cl_gift_item.setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_wall_no_liang); ImageLoader.loadImage(convertView.getContext(), holder.iv_gift_image, item.getBase_image(),0.4f); holder.tv_gift_values.setVisibility(View.GONE); holder.gift_num.setVisibility(View.GONE); holder.rv_gift_user_list.setVisibility(View.GONE); } return convertView; } static class ViewHolder { TextView textView; ImageView iv_gift_image; TextView tv_gift_values; TextView gift_num; TextView tv_price33; RecyclerView rv_gift_user_list; ConstraintLayout cl_gift_item; } }