Я пытаюсь соединить свой просмотрщик двух разных mutableArray и один textView.
Он работает правильно вместо переопределения. GetItemCount () начинается с позиции 0 вместо 2. Все данные поступают из хранилища и вызываются в классе MainActivity
В позиции 0 у меня есть собственный адаптер для newList, и он работает правильно, в позиции 1 у меня есть просмотр текста, и он работает правильно. В позиции 2 я хочу запустить этот список цветов, но по какой-то причине он пропустил 2 первых элемента из моего списка цветов.
Итак, мой вопрос, как я могу сделать мой
override fun getItemCount(): Int {
return flowerList.size
}
Для запуска из положения 2 вместо положения 0
Вот мой полный код этого адаптера:
class MainAdapter(val flowerList: MutableList<Flowers>, val newsList: MutableList<News>, val context: Context) : RecyclerView.Adapter<MainAdapter.ViewHolder>() {
private val TYPE_NEWS_LAYOUT = 0
private val TYPE_TITLE_LAYOUT = 1
private val TYPE_FLOWERS_LAYOUT = 2
override fun onCreateViewHolder(parent: ViewGroup, position: Int): ViewHolder {
if (position == TYPE_NEWS_LAYOUT) {
val newsFeed = LayoutInflater.from(parent.context).inflate(R.layout.main_horizontal_recycler, parent, false)
return ViewHolder(newsFeed)
} else if (position == TYPE_TITLE_LAYOUT) {
val textView = LayoutInflater.from(parent.context).inflate(R.layout.item_main_text_recycler, parent, false)
return ViewHolder(textView)
} else {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_main_bottom_recycler, parent, false)
return ViewHolder(view)
}
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
if (position == 0) {
holder.itemView.main_top_recycler_horizontal.layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
holder.itemView.main_top_recycler_horizontal.adapter = MainHorizontalAdapter(newsList)
} else if (position == 1) {
holder.middleTitle.text = "Text here"
} else {
val flower = flowerList[position]
holder.flowerName.text = flower.flowername
Glide.with(context).load(flower.mainimageurl).into(holder.flowerImage)
}
}
override fun getItemViewType(position: Int): Int {
if (position == 0) {
return TYPE_NEWS_LAYOUT
} else if (position == 1)
return TYPE_TITLE_LAYOUT
else
return TYPE_FLOWERS_LAYOUT
}
override fun getItemCount(): Int {
return flowerList.size
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val flowerName = view.flower_name
val flowerImage = view.flower_image
val middleTitle = view.main_recycler_title
}
}