refactor(setting): 优化设置页面适配器点击事件处理

- 移除旧的直接点击监听器实现
- 集成防抖动点击事件处理机制
- 使用新的点击事件委托方式提升用户体验
- 改进适配器初始化逻辑结构
This commit is contained in:
2026-05-15 15:21:44 +08:00
parent 1024d82958
commit d080ca0690
2 changed files with 6 additions and 4 deletions
@@ -33,9 +33,6 @@ class SettingAdapter : BaseQuickAdapter<SettingItem, SettingAdapter.VH>() {
} else {
holder.binding.tvSubtitle.gone()
}
// 点击事件直接委托给实体类中注入的 lambda
holder.binding.root.setOnClickListener { item.onClick() }
}
inner class VH(val binding: ListItemSettingBinding) : QuickViewHolder(binding.root)
@@ -10,6 +10,7 @@ import android.os.Bundle
import android.provider.Settings
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.chad.library.adapter4.util.setOnDebouncedItemClick
import com.shuwei.dish.match.adapter.SettingAdapter
import com.shuwei.dish.match.base.BaseActivity
import com.shuwei.dish.match.databinding.ActivitySettingBinding
@@ -37,7 +38,11 @@ class SettingActivity : BaseActivity() {
/** 包含全部菜单项的完整列表(含隐藏项) */
private val allItems: List<SettingItem> by lazy { buildAllItems() }
private val adapter = SettingAdapter()
private val adapter = SettingAdapter().apply {
setOnDebouncedItemClick { _, _, position ->
getItem(position)?.onClick()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)