From 641d6300869c8d53e8b038e47eb0fe469891a95a Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期二, 01 四月 2025 10:29:07 +0800 Subject: [PATCH] 1.vip续费页面-会员信息 --- app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt | 88 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 85 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt index 3671d10..3a30115 100644 --- a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt +++ b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt @@ -1,5 +1,6 @@ package com.example.firstapp.ui.vip +import android.graphics.Color import android.graphics.drawable.Drawable import androidx.fragment.app.viewModels import android.os.Bundle @@ -9,7 +10,9 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView +import android.widget.Toast import androidx.databinding.DataBindingUtil +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.load.resource.bitmap.RoundedCorners @@ -17,7 +20,11 @@ import com.bumptech.glide.request.target.Target import com.bumptech.glide.load.DataSource import com.example.firstapp.R +import com.example.firstapp.database.response.UserInfo +import com.example.firstapp.database.service.RetrofitClient import com.example.firstapp.databinding.FragmentMemberInfoCardBinding +import com.example.firstapp.utils.PreferencesManager +import kotlinx.coroutines.launch class MemberInfoCardFragment : Fragment() { @@ -26,11 +33,14 @@ fun newInstance() = MemberInfoCardFragment() } - private val viewModel: MemberInfoCardViewModel by viewModels() + val viewModel: MemberInfoCardViewModel by viewModels() // 绑定变量 private var _binding: FragmentMemberInfoCardBinding? = null private val binding get() = _binding!! + + private var currentUserInfo: UserInfo? = null // 确保使用你的实际数据类 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -49,7 +59,7 @@ // 绑定头像 Glide.with(this) - .load("http://192.168.1.201:9000/sms/avatar/avatar.jpg") + .load(viewModel.cover) .transform(RoundedCorners(100)) // 设置圆角 .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图 .listener(object : RequestListener<Drawable> { @@ -80,7 +90,7 @@ // 绑定会员徽章 Glide.with(this) - .load("http://192.168.1.201:9000/sms/member/vip_no.png") + .load(viewModel.vipCover) .transform(RoundedCorners(100)) // 设置圆角 .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图 .listener(object : RequestListener<Drawable> { @@ -107,6 +117,45 @@ }) .into(binding.memberImageView) + + // 监听 cover 变化 + viewLifecycleOwner.lifecycleScope.launch { + viewModel.cover.collect { coverUrl -> + Glide.with(this@MemberInfoCardFragment) + .load(coverUrl) + .transform(RoundedCorners(100)) + .error(R.drawable.error_placeholder) + .into(binding.memberAvatarView) + } + } + + // 监听 vipCover 变化 + viewLifecycleOwner.lifecycleScope.launch { + viewModel.vipCover.collect { vipCoverUrl -> + Glide.with(this@MemberInfoCardFragment) + .load(vipCoverUrl) + .transform(RoundedCorners(100)) + .error(R.drawable.error_placeholder) + .into(binding.memberImageView) + } + } + + // 监听 background 变化 + viewLifecycleOwner.lifecycleScope.launch { + viewModel.background.collect { backgroundColor -> +// binding.memberCardCardView.setBackgroundColor(Color.parseColor(backgroundColor)) + binding.memberCardCardView.setBackgroundResource(backgroundColor) + } + } + + + viewLifecycleOwner.lifecycleScope.launch { + viewModel.color.collect { color -> + binding.phoneNumberText.setTextColor(Color.parseColor(color)) + binding.memberStatus.setTextColor(Color.parseColor(color)) + } + } + return binding.root } @@ -115,4 +164,37 @@ super.onDestroyView() _binding = null } + +// private fun loadUserInfo() { +// // 获取Fragment实例 +// val memberInfoCardFragment = supportFragmentManager.findFragmentById(R.id.memberInfoCardFragment) as MemberInfoCardFragment? +// +// +// +// lifecycleScope.launch { +// try { +// // 从本地获取保存的手机号 +// val savedPhone = PreferencesManager.getPhone() +// if (savedPhone.isNullOrEmpty()) { +//// Toast.makeText(this@VipActivity, "用户未登录", Toast.LENGTH_SHORT).show() +// return@launch +// } +// +// val response = RetrofitClient.apiService.getUserInfo(savedPhone) +// if (response.code == "0" && response.data != null) { +// // 保存用户信息 +// currentUserInfo = response.data +// val userInfo = response.data +// // 调用ViewModel的刷新方法 +// memberInfoCardFragment?.viewModel?.updateMemberStatus(userInfo) +// +// } +// } catch (e: Exception) { +// e.printStackTrace() +// Toast.makeText(this@VipActivity, "获取用户信息失败", Toast.LENGTH_SHORT).show() +// } +// } +// +// } + } \ No newline at end of file -- Gitblit v1.9.3