我获取了一个Offer列表(OfferBaseModel)。Offers
可以有两种类型:个人或收藏夹。现在我想在选项卡选择上显示这些
open class OfferBaseModel -> Parent Class
data class PersonalOfferModel(val personalOffer: PersonalOffer) : OfferBaseModel()
data class FavoriteOfferModel(val product: Product) : OfferBaseModel()
我必须为两个项目使用相同的RecyclerView
。如果我点击PersonOffer选项卡。RecyclerView
应该只过滤PersonalOfferItemViewType,当我点击FavouriteOffer Tab时,它应该只显示FavouriteItemViewType。当我点击第三个选项卡**(全部)**时。它应该显示两种类型的数据
我必须过滤相同的列表,因为我必须跟踪在任何选项卡中查看一次的报价。
我不想提供新的列表选项卡上的选择。仅根据viewItemType进行筛选。
所有优惠选项卡||优惠选项卡||个人优惠选项卡
但是它下面的ClerView保持沿着不变,只提供一次same list
。仅过滤以上选项卡上的选择。
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (getItemViewType(position)) {
TYPE_PERSONAL_SECTION -> (holder as PersonalOfferViewHolder).bind(position)
TYPE_FAVOURITE_SECTION -> (holder as FavouriteOfferViewHolder).bind(position)
}
}
override fun getItemViewType(position: Int): Int {
return if (sections[position].shopSectionEntity.styling == "SecondarySection") {
TYPE_PERSONAL_SECTION
} else {
TYPE_FAVOURITE_SECTION
}
}
我创建了一个TrackableRecyclerView
。每个项目必须是tracked once
。我的意思是,如果Personal Offer
在个人优惠标签中查看。如果在所有部分选项卡中显示相同的产品,则不应再次调用analytics tracking
1条答案
按热度按时间5sxhfpxr1#
很难从现有的代码中做出推论,但我想提供一些逻辑。
和你的条件按钮