У меня есть список видео. Я показываю эти видео с помощью Viewpager2. Теперь я хочу отображать нативную рекламу после каждой 5-й позиции. Итак, я написал для этого код. Я создал 2 фрагмента, в одном из которых есть видеоплеер (в котором отображается все видео), а во втором - собственная реклама в fb. Теперь (вот где я застрял) у меня есть 2 проблемы с кодом, который я сделал,
Проблема 1. Я добавил VideoFragmentNative после каждой 5-й позиции, поэтому всякий раз, когда этот фрагмент добавлял его занимает 1 позицию, поэтому, если у меня есть список из 20 видео, последние 4 видео не будут отображаться, потому что я добавил VideoFragmentNative. Итак, как это решить?
Проблема 2. После того, как я добавил VideoFragmentNative IF, объявления не загружаются или не загружаются (нет заполнения или что-то в этом роде), я хочу удалить этот фрагмент в этой позиции. Итак, как его удалить? (Эту часть кода я этого не делал) Я проверил stackoverflow на предмет удаления фрагмента, но во всем коде он удаляется из позиции и notifydatasetChanged (), но я добавил фрагмент в адаптер так как удалить его изнутри фрагмента?
Это мой адаптер
package com.dashingdisco.app.downloader.viewpager
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.dashingdisco.app.downloader.VideoActivity
import com.dashingdisco.app.downloader.model.MediaFiles
import com.orhanobut.logger.Logger
class MyPagerAdapter(val activity: VideoActivity, val media: ArrayList<MediaFiles>, val whereFrom: Int) : FragmentStateAdapter(activity){
override fun getItemCount()= media.size
var first:Int=1
var last:Int=1
var firstTime=true
override fun createFragment(position: Int): Fragment {
Logger.e("createFragment-->$position")
var fragment:Fragment
if(firstTime){
firstTime=false
val medium = media[position]
val bundle = Bundle()
bundle.putSerializable(MEDIUM, medium)
bundle.putInt(WHEREFROM,whereFrom)
fragment = VideoFragment()
fragment.arguments = bundle
fragment.listener = activity
}
else{
if(position != 0 && position% 5 == 0){
first++
val medium = media[position]
val bundle = Bundle()
bundle.putSerializable(MEDIUM, medium)
bundle.putInt(WHEREFROM,whereFrom)
fragment = VideoFragmentNative()
fragment.arguments = bundle
}
else{
Logger.e("first-->$first\nlast-->$last")
var medium :MediaFiles
if(position != 0 && first>last){
last=first
val fPosition=position-1
medium = media[fPosition]
}
else{
medium = media[position]
}
val bundle = Bundle()
bundle.putSerializable(MEDIUM, medium)
bundle.putInt(WHEREFROM,whereFrom)
fragment = VideoFragment(viewPager)
fragment.arguments = bundle
fragment.listener = activity
}
}
return fragment
}
}
Итак, помогите мне исправить эти ошибки или Если есть другой способ добавить нативную рекламу в Viewpager, поделитесь, пожалуйста, Как добавить и удалить при необходимости динамически? Если вы можете предоставить код, я был бы признателен