1:完成才艺展示功能

This commit is contained in:
2025-11-28 14:38:03 +08:00
parent b089f4a56f
commit 784a67214d
10 changed files with 387 additions and 14 deletions

View File

@@ -0,0 +1,101 @@
package com.xscm.modulemain.dialog
import android.content.Context
import android.view.Gravity
import android.view.ViewGroup
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.hjq.toast.ToastUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.room.activity.RoomActivity
import com.xscm.modulemain.adapter.RoomTalentAdapter
import com.xscm.modulemain.databinding.DialogRoomTalentBinding
import com.xscm.moduleutil.bean.RoomInputEvent
import com.xscm.moduleutil.bean.RoomMessageEvent
import com.xscm.moduleutil.bean.RoomMessageEvent.T
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.listener.MessageListenerSingleton
import com.xscm.moduleutil.utils.SpUtil
import com.xscm.moduleutil.widget.dialog.BaseDialog
import com.xscm.moduleutil.widget.floatingView.IFloatingView
import io.reactivex.disposables.Disposable
import java.nio.charset.StandardCharsets
/**
* 项目名称:羽声语音
* 时间2025/11/28 9:25
* 用途:签约房中的展示才艺
*/
class RoomTalentDialog(context: Context, val roomId: String) :
BaseDialog<DialogRoomTalentBinding>(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
var adapter: RoomTalentAdapter? = null
override fun getLayoutId(): Int {
return R.layout.dialog_room_talent
}
override fun initView() {
setupWindow()
mBinding.tvQx.setOnClickListener {
dismiss()
}
mBinding.tvQd.setOnClickListener {
if (adapter?.getSelectedValue()?.isEmpty() == true) {
ToastUtils.show("请选择才艺")
} else {
var messageEvent =
RoomInputEvent(SpUtil.getUserInfo().nickname + "选择了" + adapter?.getSelectedValue() + "才艺")
(ActivityUtils.getTopActivity() as? RoomActivity)?.let { roomActivity ->
roomActivity.dialogMessage(messageEvent)
}
}
dismiss()
}
}
override fun initData() {
RetrofitClient.getInstance().skillList(object : BaseObserver<MutableList<String>>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: MutableList<String>) {
if (t.isNotEmpty()) {
t.addAll(t)
t.addAll(t)
t.addAll(t)
adapter = RoomTalentAdapter(t) { selectedValue, position ->
// 处理选中事件
LogUtils.e("选中了: $selectedValue, 位置: $position")
}
// 设置GridLayoutManager每行显示4个item
val layoutManager =
androidx.recyclerview.widget.GridLayoutManager(context, 4)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
}
}
})
}
private fun setupWindow() {
val window = window ?: return
window.setGravity(Gravity.BOTTOM)
window.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
(ScreenUtils.getAppScreenHeight() * 348f / 812).toInt()
)
window.setBackgroundDrawableResource(android.R.color.transparent)
val params = window.attributes
params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH
window.attributes = params
}
}