合并1
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
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.example.modulevocal.R;
|
||||
import com.example.modulevocal.adapter.TopUsersAdapter;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.example.modulevocal.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.example.modulevocal.R;
|
||||
import com.example.modulevocal.activity.ui.main.GiftWallAdapter;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.bean.NobilitList;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.widget.CircularImage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.adapter
|
||||
* qx
|
||||
* 2025/11/10
|
||||
*/
|
||||
public class GridNobleAdapter extends BaseAdapter {
|
||||
private List<NobilitList.Power.PowerItem> mDataList;
|
||||
|
||||
public GridNobleAdapter(List<NobilitList.Power.PowerItem> dataList) {
|
||||
this.mDataList = dataList;
|
||||
}
|
||||
|
||||
public GridNobleAdapter() {
|
||||
|
||||
}
|
||||
|
||||
public void updateData(List<NobilitList.Power.PowerItem> 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_noble_tq, parent, false);
|
||||
holder = new ViewHolder();
|
||||
holder.tv_hz_mc = convertView.findViewById(R.id.tv_hz_mc);
|
||||
holder.ci_image = convertView.findViewById(R.id.ci_image);
|
||||
holder.tv_hz_detail = convertView.findViewById(R.id.tv_hz_detail);
|
||||
convertView.setTag(holder);
|
||||
} else {
|
||||
holder = (ViewHolder) convertView.getTag();
|
||||
}
|
||||
|
||||
NobilitList.Power.PowerItem item = mDataList.get(position);
|
||||
holder.tv_hz_detail.setText(item.getContent());
|
||||
holder.tv_hz_mc.setText(item.getName());
|
||||
ImageUtils.loadHeadCC(item.getImage(), holder.ci_image);
|
||||
|
||||
|
||||
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
static class ViewHolder {
|
||||
TextView tv_hz_mc;
|
||||
CircularImage ci_image;
|
||||
|
||||
TextView tv_hz_detail;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevocal.R;
|
||||
import com.xscm.moduleutil.bean.NobilityPrice;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.adapter
|
||||
* qx
|
||||
* 2025/11/10
|
||||
*/
|
||||
// NoblePrivilegeAdapter.java
|
||||
public class NoblePrivilegeAdapter extends BaseQuickAdapter<NobilityPrice.PowerItem, BaseViewHolder> {
|
||||
|
||||
public NoblePrivilegeAdapter() {
|
||||
super(R.layout.item_noble_privilege);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, NobilityPrice.PowerItem item) {
|
||||
helper.setText(R.id.tv_title, item.getContent());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import com.example.modulevocal.R;
|
||||
import com.xscm.moduleutil.bean.NobilitList;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.zhpan.bannerview.BaseBannerAdapter;
|
||||
import com.zhpan.bannerview.BaseViewHolder;
|
||||
|
||||
/**
|
||||
*com.example.modulevocal.adapter
|
||||
*qx
|
||||
*2025/11/10
|
||||
*
|
||||
*/
|
||||
public class NobliityBannerAdapter extends BaseBannerAdapter<NobilitList> {
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
private int mCurrentPosition;
|
||||
|
||||
public int getmCurrentPosition() {
|
||||
return mCurrentPosition;
|
||||
}
|
||||
|
||||
public void setmCurrentPosition(int mCurrentPosition) {
|
||||
this.mCurrentPosition = mCurrentPosition;
|
||||
}
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
@Override
|
||||
protected void bindData(BaseViewHolder<NobilitList> holder, NobilitList data, int position, int pageSize) {
|
||||
if (position>=mCurrentPosition) {
|
||||
ImageUtils.loadHeadCC(data.getImage(), holder.itemView.findViewById(R.id.iv_follow_bg));
|
||||
// ImageLoader.loadImage(holder.itemView.getContext(),holder.itemView.findViewById(R.id.iv_follow_bg),data.getImage(),1f);
|
||||
}else {
|
||||
ImageLoader.loadImage(holder.itemView.getContext(),holder.itemView.findViewById(R.id.iv_follow_bg),data.getImage(),0f);
|
||||
}
|
||||
}
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, TopRoom data, int position);
|
||||
}
|
||||
@Override
|
||||
public int getLayoutId(int viewType) {
|
||||
return R.layout.index_item_nobli;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.fragment.app.*;
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* A [FragmentPagerAdapter] that returns a fragment corresponding to
|
||||
* one of the sections/tabs/pages.
|
||||
*/
|
||||
public class SectionsPagerAdapter extends FragmentStateAdapter {
|
||||
|
||||
@StringRes
|
||||
private static final int[] TAB_TITLES = new int[]{com.xscm.moduleutil.R.string.tab_text_1, com.xscm.moduleutil.R.string.tab_text_2};
|
||||
private final Context mContext;
|
||||
private GiftUserWallBean giftData; // 添加数据字段
|
||||
|
||||
// public SectionsPagerAdapter(Context context, FragmentManager fm, GiftUserWallBean giftData) {
|
||||
// super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
|
||||
// this.mContext = context;
|
||||
// this.giftData = giftData;
|
||||
// }
|
||||
|
||||
public SectionsPagerAdapter(@NonNull FragmentActivity fragmentActivity, GiftUserWallBean giftData) {
|
||||
super(fragmentActivity);
|
||||
this.mContext = fragmentActivity;
|
||||
this.giftData = giftData;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Fragment createFragment(int position) {
|
||||
// 创建 Fragment 实例并传递参数
|
||||
PlaceholderFragment fragment = PlaceholderFragment.newInstance(position + 1);
|
||||
Bundle args = new Bundle();
|
||||
|
||||
// 根据位置传递不同的数据
|
||||
if (giftData != null) {
|
||||
if (position == 0) {
|
||||
// 传递 liang 数据
|
||||
args.putSerializable("gift_list", (Serializable) giftData.getLiang());
|
||||
} else if (position == 1) {
|
||||
// 传递 no_liang 数据
|
||||
args.putSerializable("gift_list", (Serializable) giftData.getNo_liang());
|
||||
}
|
||||
}
|
||||
args.putInt("section_number", position+1);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return 2; // 假设 GiftUserWallBean 包含 list 数据结构
|
||||
}
|
||||
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return mContext.getResources().getString(TAB_TITLES[position]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user