123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package com.quansu.heifengwuliu.widget
- import android.content.Context
- import android.util.AttributeSet
- import android.view.LayoutInflater
- import android.widget.LinearLayout
- import androidx.databinding.DataBindingUtil
- import com.hwangjr.rxbus.RxBus
- import com.hwangjr.rxbus.annotation.Subscribe
- import com.hwangjr.rxbus.annotation.Tag
- import com.qmuiteam.qmui.kotlin.onClick
- import com.quansu.heifengwuliu.R
- import com.quansu.heifengwuliu.activity.MainActivity
- import com.quansu.heifengwuliu.adapter.FuncAdapter
- import com.quansu.heifengwuliu.config.ConfigRx
- import com.quansu.heifengwuliu.databinding.WidgetRoundSearchBarBinding
- import com.quansu.heifengwuliu.model.Func
- import com.quansu.heifengwuliu.utils.func.FuncAwoke
- import com.ysnows.base.utils.UiSwitch
- import com.ysnows.base.view.RxBusView
- open class WidgetRoundSearchBar constructor(context: Context?, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : LinearLayout(context, attrs, defStyleAttr), RxBusView {
- lateinit var binding: WidgetRoundSearchBarBinding
- private val funcAdapter = FuncAdapter()
- constructor(context: Context?, attrs: AttributeSet?) : this(context, attrs, 0)
- private fun initView(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) {
- binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.widget_round_search_bar, this, true)
- binding.recyclerView.adapter = funcAdapter
- render("init")
- binding.tvBar.onClick { UiSwitch.single(context, MainActivity::class.java) }
- }
- @Subscribe(tags = [Tag(ConfigRx.ROUND_SEARCH_BAR_CHANGED), Tag(ConfigRx.ROUND_SEARCH_BAR_ITEM_ADDED)])
- fun render(from: String) {
- val leftFunc = Func.findLeftFunc()
- binding.funcLeft = leftFunc
- binding.imgFuncLeft.setOnClickListener { FuncAwoke.awokeFunc(context, leftFunc) }
- funcAdapter.setList(Func.findRightFuncList())
- }
- init {
- initView(context, attrs, defStyleAttr)
- }
- override fun onAttachedToWindow() {
- super.onAttachedToWindow()
- register()
- }
- override fun onDetachedFromWindow() {
- super.onDetachedFromWindow()
- unRegister()
- }
- override val isRxbus: Boolean
- get() = true
- override fun register() {
- if (isRxbus) RxBus.get().register(this)
- }
- override fun unRegister() {
- if (isRxbus) RxBus.get().unregister(this)
- }
- }
|