143 lines
5.5 KiB
Java
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;
|
|
}
|
|
} |