Как скрыть нужный мне элемент с помощью метода getItemViewType(int)?

В моем приложении есть тест с карточками, и мне нужно сделать титульную карточку, после свайпа которой начнется тест и она должна исчезнуть - это я и не могу реализовать, а реализовать мне это нужно с помощью метода getItemViewType(int). Я создал CardFragment (Class), CardAdapter (Class), CardViewModel (Class), card_fragment (Layout, где находится RecyclerView), item_card (Layout итем, который помещается в RecyclerView и заполняется данными) и item_title_card (Layout итем, который должен отображаться изначально, после свайпа которого должен начаться тест с использованием выше упомянутого item_card) в item_card выгружаются все нужные данные(Пока что эти данные из личной базы данных(произвольные), но в будущем я буду их брать из базы данных SQLite).Я написал кое какой код(он неверный), а что делать дальше я просто без понятия. Кому не сложно, подскажите, что я делал не так и что я должен написать. Искал в интернете подобный код, но не нашел.

CardAdapter

class CardAdapter(var items: List<CardTutorialWordItem>, val callback: Callback) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder{
    val inflater = LayoutInflater.from(parent.context)
    return when(viewType){
     TYPE_CARD -> CardViewHolder(inflater.inflate(R.layout.item_card, parent, false))
        TYPE_TITLE -> TitleCardViewHolder(inflater.inflate(R.layout.item_card_title,parent, false))

        else ->CardViewHolder(inflater.inflate(R.layout.item_card, parent, false))

    }
}


override fun getItemCount() = items.size

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    when(holder){
        is CardViewHolder -> holder.bind(items[position] as CardTutorialWordItem.CardItem)
        is TitleCardViewHolder -> holder.bind(items[position] as CardTutorialWordItem.TitleCardItem)
    }
}

override fun getItemViewType(position: Int): Int {
    return when(items[position]){
        is CardTutorialWordItem.CardItem -> TYPE_CARD
        is CardTutorialWordItem.TitleCardItem -> TYPE_TITLE
    }
}

inner class CardTextViewHolder (itemView: View) : RecyclerView.ViewHolder(itemView) {
    private val textCrdCrimeantatar = itemView.findViewById<TextView>(R.id.txt_crd_crimeantatar)
    private val textCrdRussian = itemView.findViewById<TextView>(R.id.txt_crd_russian)
    fun bind(item: WordStudyCard) {
        textCrdCrimeantatar.text = item.crimeantatar
        textCrdRussian.text = item.russian
        itemView.setOnClickListener {
            if (adapterPosition != RecyclerView.NO_POSITION) callback.onItemClicked(items[adapterPosition])
        }
    }
}

inner class CardViewHolder(ItemView: View) : RecyclerView.ViewHolder(ItemView){
    private val card = ItemView.findViewById<CardView>(R.id.crd_card)
    fun bind (item: CardTutorialWordItem.CardItem){
        itemView.setOnClickListener{
            if(adapterPosition != RecyclerView.NO_POSITION) callback.onItemClicked(items[adapterPosition])
        }
    }
}

inner class TitleCardViewHolder (ItemView: View) : RecyclerView.ViewHolder(ItemView){
    private val cardTitle = ItemView.findViewById<CardView>(R.id.crd_card_title)
    fun bind (item: CardTutorialWordItem.TitleCardItem){
        itemView.setOnClickListener{
            if(adapterPosition != RecyclerView.NO_POSITION) callback.onItemClicked(items[adapterPosition])
        }
    }
}


interface Callback {
    fun onItemClicked(item: CardTutorialWordItem)
}

companion object {
    private const val TYPE_TITLE = 1
    private const val TYPE_CARD = 2
    }
}

CardFragment

class CardFragment : Fragment() {
val items = mutableListOf<WordStudyCard>()
val item = mutableListOf<CardTutorialWordItem>()
private fun cardDataPrepare() {
    items.add(WordStudyCard("Some", "text"))
    items.add(WordStudyCard("Some", "text"))
    items.add(WordStudyCard("Some", "text"))
    items.add(WordStudyCard("Some", "text"))
    items.add(WordStudyCard("Some", "text"))
    items.add(WordStudyCard("Some", "text"))
}

val cardAdapter = CardAdapter(item, object: CardAdapter.Callback {
    override fun onItemClicked(item: CardTutorialWordItem) {
        //TODO Сюда придёт элемент, по которому кликнули. Можно дальше с ним работать
    }
})

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    return inflater.inflate(R.layout.fragment_card, container, false)
}


override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    PagerSnapHelper().attachToRecyclerView(cardRecycler)
    val simpleItemTouchCallback: ItemTouchHelper.SimpleCallback =
        object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.UP) {
            override fun onMove(
                cardRecycler: RecyclerView,
                cardViewHolder: RecyclerView.ViewHolder,
                target: RecyclerView.ViewHolder
            ): Boolean {
                Toast.makeText(requireContext(), "on Move", Toast.LENGTH_SHORT).show();
                return false
            }

            override fun onSwiped(cardViewHolder: RecyclerView.ViewHolder, direction: Int) {
                Toast.makeText(requireContext(), "on Swiped ", Toast.LENGTH_SHORT).show()
                val position = cardViewHolder.adapterPosition
                items.removeAt(position)
                cardAdapter.notifyDataSetChanged()
            }
        }
    cardDataPrepare()
    cardRecycler.adapter = cardAdapter
    val itemTouchHelper = ItemTouchHelper(simpleItemTouchCallback)
    itemTouchHelper.attachToRecyclerView(cardRecycler)
    cardRecycler.layoutManager = LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false)
   }
}

item_card_title

   <androidx.cardview.widget.CardView
    android:id="@+id/crd_card_title"
    android:layout_width="350dp"
    android:layout_height="350dp"
    android:layout_gravity="center_horizontal|center_vertical"
    app:cardCornerRadius="12dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <ImageView
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginBottom="60dp"
        android:background="@color/colorAccent">

    </ImageView>

    <TextView
        android:id="@+id/txt_crd_title"
        android:layout_width="275dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:gravity="center"
        android:text="Потяните карточку вверх, если вы запомнили слово, чтобы оно больше не повторялось."
        android:textSize="19dp"
        android:textStyle="bold"></TextView>

    <TextView
        android:id="@+id/txt_crd_russian"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginTop="65dp"
        android:text="Начать"
        android:textColor="@color/colorAccent"
        android:textSize="30dp">

    </TextView>

item_card

    <androidx.cardview.widget.CardView
    android:id="@+id/crd_card"
    android:layout_width="350dp"
    android:layout_height="350dp"
    android:layout_gravity="center_horizontal|center_vertical"
    app:cardCornerRadius="12dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <TextView
        android:id="@+id/txt_crd_crimeantatar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginBottom="80dp"
        android:text="Архивовведение"></TextView>

    <TextView
        android:id="@+id/txt_crd_russian"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginTop="80dp"
        android:text="Архивовведение">

    </TextView>

fragment_card

    <androidx.recyclerview.widget.RecyclerView
    android:id="@+id/cardRecycler"
    android:background="@color/white"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_alignParentBottom="true"
    android:scrollbars="vertical"
    app:spanCount="1"
    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:listitem="@layout/item_card"/>

Я просто не понимаю что мне делать. Если разъясните, то я буду очень благодарен.


Ответы (0 шт):