Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/adapter/GiftWallAdapter.java
2025-11-12 16:42:51 +08:00

143 lines
5.5 KiB
Java

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<GiftUserWallBean.GiftWallBean> mDataList;
public GiftWallAdapter(List<GiftUserWallBean.GiftWallBean> dataList) {
this.mDataList = dataList;
}
public void updateData(List<GiftUserWallBean.GiftWallBean> 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<CombinedGiftBean.TopUsers> 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;
}
}