如何在环氧树脂回收站中制作条排?

问题描述

我尝试在epoxyrecyclerview 中制作剥离的行。 我嵌套了epoxyrecycler 视图,这是父级的epoxymodel

    EpoxyModelWithHolder<AccountClassificationEpoxyModel.Holder>(),PopupMenu.OnMenuItemClickListener {

    @EpoxyAttribute
    lateinit var data: ClassificationDto

    @EpoxyAttribute
    var dataAccount: HashMap<Int,ArrayList<AccountDto>>? = null

    @EpoxyAttribute
    lateinit var parentFragment: AccountFragment

    private lateinit var dialogState: DialogState

    var isEven = false

    @RequiresApi(Build.VERSION_CODES.M)
    override fun bind(holder: Holder) {
        super.bind(holder)

        if (!this::dialogState.isInitialized) {
            dialogState = ViewModelProviders.of(parentFragment).get(DialogState::class.java)
        }

        fillValues(holder)
        holder.btnEdit.setOnClickListener {
            val popUp = PopupMenu(parentFragment.requireContext(),it)
            popUp.setOnMenuItemClickListener(this)
            popUp.inflate(R.menu.menu_popup)
            popUp.show()
        }
    }


    inner class Holder : KotlinEpoxyHolder() {
        val tvName by bind<TextView>(R.id.tvClassificationName)
        val tvCode by bind<TextView>(R.id.tvClassificationCode)
        val rvAccount by bind<EpoxyRecyclerView>(R.id.rvAccount)
        val btnEdit by bind<AppCompatImageButton>(R.id.btnEdit)
    }

    override fun onMenuItemClick(item: MenuItem?): Boolean {
        when (item?.itemId) {
            R.id.actionUpdate -> {
                val dialog = AddClassificationFragment(data).newInstance()
                dialog.setTargetFragment(parentFragment,1)
                parentFragment.fragmentManager?.let { it1 -> dialog.show(it1,"Dialog") }
            }
            R.id.actionDelete -> {
                dialogState.deleteClassification(data)
            }
        }
        return true
    }

    private fun fillValues(holder: Holder) {
        holder.tvName.text = data.classificationName
        holder.tvCode.text = data.classificationCode
        holder.rvAccount.layoutManager = GridLayoutManager(holder.rvAccount.context,1)
        holder.rvAccount.clear()
        holder.rvAccount.withModels {
            data.id?.let {
                val filteredData = dataAccount?.get(it)
                filteredData?.forEach {
                    accountAccount {
                        id(hashCode())
                        data(it)
                        even(isEven)
                        parentFragment(parentFragment)
                    }
                    isEven = !isEven
                }
            }
        }
    }
}

这是我的孩子环氧树脂模型

    EpoxyModelWithHolder<AccountAccountEpoxyModel.Holder>(),PopupMenu.OnMenuItemClickListener {

    @EpoxyAttribute
    lateinit var data: AccountDto

    @EpoxyAttribute
    var even: Boolean = false

    @EpoxyAttribute
    lateinit var parentFragment: AccountFragment

    private lateinit var dialogState: DialogState

    @RequiresApi(Build.VERSION_CODES.M)
    override fun bind(holder: Holder) {
        super.bind(holder)

        if (!this::dialogState.isInitialized) {
            dialogState = ViewModelProviders.of(parentFragment).get(DialogState::class.java)
        }

        if (even) holder.background.toGone()

        holder.tvAccountName.text = data.accountName
        holder.tvAccountCode.text = data.accountCode
        holder.tvPosition.text = data.position?.capitalize(Locale.getDefault())
        holder.btnEdit.setOnClickListener {
            val popUp = PopupMenu(parentFragment.requireContext(),it)
            popUp.setOnMenuItemClickListener(this)
            popUp.inflate(R.menu.menu_popup)
            popUp.show()
        }
    }

    inner class Holder : KotlinEpoxyHolder() {
        val tvAccountName by bind<TextView>(R.id.tvAccountName)
        val tvAccountCode by bind<TextView>(R.id.tvAccountCode)
        val tvPosition by bind<TextView>(R.id.tvPosition)
        val background by bind<View>(R.id.background)
        val btnEdit by bind<AppCompatImageButton>(R.id.btnEdit)
    }

    override fun onMenuItemClick(item: MenuItem?): Boolean {
        when (item?.itemId) {
            R.id.actionUpdate -> {
                val dialog = AddAccountDialog(data).newInstance()
                dialog.setTargetFragment(parentFragment,"Dialog") }
            }
            R.id.actionDelete -> {
                dialogState.deleteAccount(data)
            }
        }
        return true
    }
}

所以我使用变量 isEven 来制作条形行。当行位置甚至高亮背景消失时。问题是当我更新数据时,条带变得凌乱。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...