【问题标题】:How to set an ID to an EpoxyModelWithHolder?如何将 ID 设置为 EpoxyModelWithHolder?
【发布时间】:2020-01-31 18:54:43
【问题描述】:

我目前正在使用 Epoxy 3.9.0 添加(第一次使用它)并且我正在创建一个 EpoxyModelWithHolder。

我正在设置一个 ID,但我仍然收到:“您必须先在模型上设置一个 ID,然后才能添加它。”

模型类

abstract class PlayerModel: EpoxyModelWithHolder<PlayerModel.PlayerHolder>() {

    @EpoxyAttribute
    var id : Long = 0

    @EpoxyAttribute
    @DrawableRes
    var image : Int = 0

    @EpoxyAttribute
    var injured : Boolean = false

    @EpoxyAttribute
    var name : String = ""

    @EpoxyAttribute
    var position : String = ""
    // Busniess Logic

控制器

class PlayerController : EpoxyController() {

    var playerItems : List<Player> = PlayerDataFactory.getPlayerItems()

    override fun buildModels() {
        var i : Long = 0

        playerItems.forEach { player ->
            PlayerModel_()
                .id(i++)
                .image(player.image)
                .injured(player.injured)
                .name(player.name)
                .position(player.position)
                .addTo(this)
        }
    }
}

数据类

data class Player(val image: Int = -1, val injured: Boolean, val name: String, val position: String)

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: android kotlin epoxy


    【解决方案1】:

    只需从 PlayerModel 类中删除 var id : Long = 0 并重建,

    (PlayerModel_ id(long id)函数由Epoxy自动生成。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2012-07-03
      • 2021-11-17
      • 2012-05-08
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多