Как создать дополнительный макет сообщения в библиотеке ChatKit для Android?

Я пытаюсь реализовать Interactive Console для одного из приложений Android. Я использую ChatKit для этого. Помимо существующих макетов сообщений, я хочу использовать пользовательский тип сообщения, макет и держатель представления.

Это то, что я сделал.

    val CONTENT_TYPE_CARD_LIST= "5".toByte()
    val holders = MessageHolders().registerContentType(CONTENT_TYPE_CARD_LIST,
            CardListViewHolder::class.java,R.layout.card_list_layout,
            CardListViewHolder::class.java,R.layout.card_list_layout,
            object : MessageHolders.ContentChecker<Message>{
                override fun hasContentFor(message: Message?, type: Byte): Boolean {

                    if (type.toString().equals("5"))
                        return true
                    return false

                }

            })

Здесь CardListViewHolder.kt файл

class CardListViewHolder(itemView: View?) : MessageHolders.BaseMessageViewHolder<Message>(itemView) {

    var cardsListView : RecyclerView

    init {

        cardsListView = itemView?.findViewById(R.id.cardList)!!


    }


    override fun onBind(data: Message?) {


        print("Checking")



    }

    class CardListAdapter : RecyclerView.Adapter<CardItemViewHolder>() {

        var listItems : Array<CardItem> = emptyArray()

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardItemViewHolder {

            return CardItemViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.card_item,parent,false))
        }

        override fun getItemCount(): Int {

            return listItems.size
        }

        override fun onBindViewHolder(holder: CardItemViewHolder, position: Int) {


            holder.cardTitle?.text = listItems[position].cardTitle
            holder.cardSummary?.text = listItems[position].cardSummary
            Picasso.get().load(Uri.parse(listItems[position].cardImageUrl)).into(holder.cardIcon)

        }

    }

    class CardItemViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView) {

        var cardTitle : TextView ?= null
        var cardSummary : TextView ?= null
        var cardIcon : ImageView ?= null

        init {

            cardTitle = itemView?.findViewById(R.id.cardTitle)
            cardSummary = itemView?.findViewById(R.id.cardSummary)
            cardIcon = itemView?.findViewById(R.id.cardIcon)

        }

    }

}

Но теперь это не загрузка существующего текста MessageHolders/Layouts, Я хочу использовать существующие типы ячеек сообщений вместе с этим дополнительным типом размещения сообщений Carousal.

Я сделал что-то не так здесь? Почему другие существующие типы контента не работают?

0 ответов

Другие вопросы по тегам