feat: ui opt

This commit is contained in:
2025-11-26 19:39:05 +08:00
parent ec9818e267
commit 83ccad4171
13 changed files with 697 additions and 4 deletions

View File

@@ -0,0 +1,75 @@
package com.lukouguoji.gjc.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import com.alibaba.android.arouter.facade.annotation.Route
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.databinding.ActivityGjcWeighingRecordDetailsBinding
import com.lukouguoji.gjc.holder.GjcCheckInRecordViewHolder
import com.lukouguoji.gjc.viewModel.GjcWeighingRecordDetailsViewModel
import com.lukouguoji.module_base.base.BaseBindingActivity
import com.lukouguoji.module_base.base.CommonAdapter
import com.lukouguoji.module_base.bean.GjcWeighingRecordBean
import com.lukouguoji.module_base.common.Constant
import com.lukouguoji.module_base.router.ARouterConstants
/**
* 国际出港计重明细页
*/
@Route(path = ARouterConstants.ACTIVITY_URL_GJC_WEIGHING_RECORD_DETAILS)
class GjcWeighingRecordDetailsActivity :
BaseBindingActivity<ActivityGjcWeighingRecordDetailsBinding, GjcWeighingRecordDetailsViewModel>() {
private lateinit var adapter: CommonAdapter
override fun layoutId() = R.layout.activity_gjc_weighing_record_details
override fun viewModelClass() = GjcWeighingRecordDetailsViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("计重明细")
binding.viewModel = viewModel
// 初始化RecyclerView
binding.recyclerView.layoutManager = LinearLayoutManager(this)
adapter = CommonAdapter(
this,
R.layout.item_gjc_check_in_record,
GjcCheckInRecordViewHolder::class.java
)
binding.recyclerView.adapter = adapter
// 监听数据变化更新RecyclerView
viewModel.recordList.observe(this) { records ->
adapter.refresh(records)
}
// 监听编辑模式变化更新所有ViewHolder的编辑状态
viewModel.isEditMode.observe(this) { isEditMode ->
val layoutManager = binding.recyclerView.layoutManager as? LinearLayoutManager
layoutManager?.let {
for (i in 0 until adapter.itemCount) {
val holder = binding.recyclerView.findViewHolderForAdapterPosition(i)
as? GjcCheckInRecordViewHolder
holder?.updateEditMode(isEditMode)
adapter.notifyItemChanged(i)
}
}
}
// 初始化数据
viewModel.initOnCreated(intent)
}
companion object {
@JvmStatic
fun start(context: Context, bean: GjcWeighingRecordBean) {
val starter = Intent(context, GjcWeighingRecordDetailsActivity::class.java)
.putExtra(Constant.Key.BEAN, bean)
context.startActivity(starter)
}
}
}