布局优化

This commit is contained in:
mazengfei
2026-05-22 09:47:40 +08:00
parent 2d4f7619aa
commit 335b56eaea
4 changed files with 8 additions and 62 deletions
@@ -7,22 +7,22 @@ import androidx.core.view.updateLayoutParams
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.shuwei.dish.match.databinding.ListItemCellBinding import com.shuwei.dish.match.databinding.ListItemCellBinding
import com.shuwei.dish.match.db.entity.SeasoningEntity import com.shuwei.dish.match.model.GoodsItem
import com.shuwei.dish.match.utils.ext.dp import com.shuwei.dish.match.utils.ext.dp
/** /**
* 调料格子列表适配器,使用 list_item_cell 布局展示调料名称与用量 * 调料格子列表适配器,使用 list_item_cell 布局展示调料名称与用量
* 第4个格子(position=3)为大格,其余为标准格 * 第4个格子(position=3)为大格,其余为标准格
*/ */
class SeasoningAdapter(list: MutableList<SeasoningEntity>) : class SeasoningAdapter(list: MutableList<GoodsItem>) :
BaseQuickAdapter<SeasoningEntity, SeasoningAdapter.VH>(list) { BaseQuickAdapter<GoodsItem, SeasoningAdapter.VH>(list) {
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
val binding = ListItemCellBinding.inflate(LayoutInflater.from(context), parent, false) val binding = ListItemCellBinding.inflate(LayoutInflater.from(context), parent, false)
return VH(binding) return VH(binding)
} }
override fun onBindViewHolder(holder: VH, position: Int, item: SeasoningEntity?) { override fun onBindViewHolder(holder: VH, position: Int, item: GoodsItem?) {
item ?: return item ?: return
// 第4个格子(index=3)使用大尺寸,其余使用标准尺寸 // 第4个格子(index=3)使用大尺寸,其余使用标准尺寸
val isLarge = position == 3 val isLarge = position == 3
@@ -18,6 +18,7 @@ import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.shuwei.dish.match.R import com.shuwei.dish.match.R
import com.shuwei.dish.match.databinding.ListItemCellBinding import com.shuwei.dish.match.databinding.ListItemCellBinding
import com.shuwei.dish.match.db.entity.SeasoningEntity import com.shuwei.dish.match.db.entity.SeasoningEntity
import com.shuwei.dish.match.model.GoodsItem
import com.shuwei.dish.match.utils.ext.appendText import com.shuwei.dish.match.utils.ext.appendText
import com.shuwei.dish.match.utils.ext.buildSpannableString import com.shuwei.dish.match.utils.ext.buildSpannableString
import com.shuwei.dish.match.utils.ext.clickWithDebounce import com.shuwei.dish.match.utils.ext.clickWithDebounce
@@ -104,6 +105,9 @@ class TextCellAdapter(var list: MutableList<SeasoningEntity>) :
// } // }
// } // }
fun getTextSpan(item: GoodsItem): SpannableStringBuilder {
return getTextSpan(item.toSeasoningEntity())
}
fun getTextSpan(item: SeasoningEntity): SpannableStringBuilder { fun getTextSpan(item: SeasoningEntity): SpannableStringBuilder {
val endIndex = if (item.sort == 9) 10 else 6 val endIndex = if (item.sort == 9) 10 else 6
var name = if (item.goodsName.isNullOrBlank()) "未配置" else item.goodsName!! var name = if (item.goodsName.isNullOrBlank()) "未配置" else item.goodsName!!
@@ -78,13 +78,6 @@ class DeviceConfigActivity : BaseActivity() {
it.text = "设备配置" it.text = "设备配置"
}, rightIconActon = { }, rightIconActon = {
it.gone() it.gone()
// it.alpha = 0.0F
// it.setImageResource(R.drawable.ic_setting)
// it.setOnClickListener {_->
// detector.setOnDelayedMultiClickListener(it) {
// defaultDataSettingDialog()
// }
// }
}) })
loadQualitySpan(isEnable = false) loadQualitySpan(isEnable = false)
@@ -174,31 +167,11 @@ class DeviceConfigActivity : BaseActivity() {
onLeftClick = { dismiss() } onLeftClick = { dismiss() }
onRightClick = { onRightClick = {
dismiss() dismiss()
resetList()
} }
onDismiss = { hideStatusBar() } onDismiss = { hideStatusBar() }
}.show() }.show()
} }
private fun resetList() {
runCatching {
val record = JsonAssetsLoader.parseJsonFromAssets<ResetReasoningRecord>(
this,
"default_seasoning_list.json"
)
// val weightArray = WeightUtil.weightArray
appViewModel.clearAllSeasoning {
record?.list?.forEach { entity ->
entity.useWeight = weightArray[addressArray[entity.sort]].toDouble()
appViewModel.saveSeasoning(entity) {
updateGridData(entity)
}
}
// loadSeasoning()
}
}.onFailure { it.printStackTrace() }
}
private fun loadSeasoning() { private fun loadSeasoning() {
appViewModel.loadSeasoning { appViewModel.loadSeasoning {
seasoningItems.clear() seasoningItems.clear()
@@ -208,31 +181,6 @@ class DeviceConfigActivity : BaseActivity() {
} }
} }
private fun initConfigData() {
repeat(12) { num ->
val firstOne = seasoningItems.firstOrNull { it.sort == num }
if (firstOne == null) {
seasoningItems.add(SeasoningEntity().also { it.sort = num })
}
}
}
private fun setGridData(list: MutableList<SeasoningEntity>) {
val gridLayout = binding.include.root
list.forEach { entity ->
val tag = entity.sort.toString()
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout, entity)
}
}
private fun updateGridData(entity: SeasoningEntity) {
val gridLayout = binding.include.root
val tag = entity.sort.toString()
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
TextCellAdapter.loadLayout(frameLayout, entity)
}
private fun clickGridItem(sort: Int, entity: SeasoningEntity) { private fun clickGridItem(sort: Int, entity: SeasoningEntity) {
val currentAddress = AddressUtil.getWeighAddressArray().get(sort) val currentAddress = AddressUtil.getWeighAddressArray().get(sort)
// val seasoningEntity = list.first{it.sort == sort} // val seasoningEntity = list.first{it.sort == sort}
@@ -126,12 +126,6 @@
android:textColor="@color/gray_b4" android:textColor="@color/gray_b4"
android:textSize="28sp" /> android:textSize="28sp" />
<!-- <View-->
<!-- android:id="@+id/viewPoint"-->
<!-- android:layout_width="5dp"-->
<!-- android:layout_height="5dp"-->
<!-- android:layout_gravity="center_vertical"-->
<!-- android:background="@drawable/bg_circle_green"/>-->
</LinearLayout> </LinearLayout>
<include <include