Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/adapter/MyFamilyAdapter.kt

126 lines
4.9 KiB
Kotlin
Raw Normal View History

2025-11-28 09:13:08 +08:00
package com.xscm.modulemain.adapter
import android.content.Context
import android.graphics.Color
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
2025-11-28 09:13:08 +08:00
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.google.android.flexbox.FlexboxLayout
import com.xscm.modulemain.Application
import com.xscm.modulemain.R
import com.xscm.moduleutil.bean.MyFamilyBean
import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.utils.MeHeadView
import com.xscm.moduleutil.utils.SpUtil
import com.xscm.moduleutil.widget.ShineTextView
/**
* 项目名称羽声语音
* 时间2025/11/27 9:23
* 用途
*/
class MyFamilyAdapter(
val context: Context,var userId: Int, layoutId: Int, data: MutableList<MyFamilyBean.GroupMembersListsBean>?
) :
BaseQuickAdapter<MyFamilyBean.GroupMembersListsBean, BaseViewHolder>(layoutId, data) {
// 定义点击事件回调接口
interface OnItemClickListener {
fun onItemClick(position: Int, item: MyFamilyBean.GroupMembersListsBean)
fun onRenewClick(position: Int, item: MyFamilyBean.GroupMembersListsBean)
2025-11-28 09:13:08 +08:00
}
2025-11-28 09:13:08 +08:00
private var onItemClickListener: OnItemClickListener? = null
// 设置点击事件监听器
fun setOnItemClickListener(listener: OnItemClickListener) {
onItemClickListener = listener
}
override fun convert(
helper: BaseViewHolder,
item: MyFamilyBean.GroupMembersListsBean
) {
// 设置整个项的点击事件
helper.getView<MeHeadView>(R.id.iv_head).setOnClickListener {
2025-11-28 09:13:08 +08:00
val position = helper.adapterPosition
if (position != RecyclerView.NO_POSITION) {
onItemClickListener?.onItemClick(position, item)
}
}
// 设置续租按钮的点击事件
helper.getView<TextView>(R.id.tv_renew).setOnClickListener {
val position = helper.adapterPosition
if (position != RecyclerView.NO_POSITION) {
onItemClickListener?.onRenewClick(position, item)
}
}
2025-11-28 09:13:08 +08:00
var flex_entry: FlexboxLayout=helper.getView(R.id.flex_entry)
var meHeadView : MeHeadView= helper.getView(R.id.iv_head)
var tvName : ShineTextView =helper.getView(R.id.tv_name)
meHeadView.setData(item.avatar,item.dress,item.nobility_image)
// helper.setText(R.id.tv_name,item.nickname)
helper.setText(R.id.tv_net_worth,item.market_value)
if (item.is_online==1){
helper.setImageResource(R.id.im_online, com.xscm.moduleutil.R.mipmap.members_online)
}else{
helper.setImageResource(R.id.im_online, com.xscm.moduleutil.R.mipmap.members_offline)
}
helper.setText(R.id.tv_time, "剩余租期"+item.end_day)
helper.setText(R.id.tv_num, "免费续约次数"+ item.free_renewal)
helper.setText(R.id.tv_today, item.today_earnings)
helper.setText(R.id.tv_yesterday, item.yesterday_earnings)
tvName.setText(item.nickname)
if (item.nickname_color.isNotEmpty()){
tvName.startColor = Color.parseColor(item.nickname_color)
tvName.shineColor = Color.parseColor(item.nickname_color)
tvName.endColor = Color.parseColor(item.nickname_color)
tvName.isShine = true
tvName.shineType = 0
}
if (userId == SpUtil.getUserId()) {
if (item.is_show_sign==0){
helper.setVisible(R.id.tv_renew,false)
2025-11-28 09:13:08 +08:00
}else{
helper.setVisible(R.id.tv_renew,true)
2025-11-28 09:13:08 +08:00
}
}
if (item.icon.isNotEmpty()) {
flex_entry.isVisible=true
for (url in item.icon) {
if (url.contains("http")) {
val imageView1 = ImageView(Application.getInstance())
val params = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
Application.getInstance().getResources()
.getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_20)
)
params.setMargins(
0,
0,
Application.getInstance().getResources()
.getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_10),
0
) // 右边距
imageView1.setLayoutParams(params)
imageView1.setScaleType(ImageView.ScaleType.FIT_START)
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1, params)
flex_entry.addView(imageView1)
}
}
} else {
flex_entry.isVisible=false
}
}
}