Внутренние фрагменты ViewPager2 не отображаются, когда я изменяю родительский фрагмент с помощью панели действий
изначально он отображается абсолютно нормально, но когда я переключаюсь на другой фрагмент с помощью панели действий,и вернитесь назад, пейджер больше не показывает свое содержимое!
ЗДЕСЬ ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ
private const val NUM_PAGES = 5
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var mPager: ViewPager2
private var Defined = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
appBarConfiguration = AppBarConfiguration(
setOf(
R.id.nav_home, R.id.nav_deposit,R.id.nav_account,R.id.nav_portfolio, R.id.nav_pager
), drawerLayout
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.main, menu)
Defined = true
PagerWorker()
return true
}
override fun onChildTitleChanged(childActivity: Activity?, title: CharSequence?) {
Log.d("Pager Worker","ChildTitleChanged")
super.onChildTitleChanged(childActivity, title)
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
fun PagerWorker(){
/** MAKING PAGER STUFF **/
if(Defined == true) {
Log.d("Pager Worker", "1")
val pagerAdapter = ScreenSlidePagerAdapter(this)
mPager = findViewById(R.id.pager)
mPager.adapter = pagerAdapter
}
}
}
class ScreenSlidePagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {
override fun createFragment(position: Int): Fragment {
return SlideFragment()
}
override fun getItemCount(): Int = NUM_PAGES
fun getItem(position: Int):Fragment{
return SlideFragment()
}
}
ЗДЕСЬ КОД ФРАГМЕНТА СЛАЙДОВ
package com.main.treasurex.ui.home
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProviders
import com.main.treasurex.R
class SlideFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View = inflater.inflate(R.layout.pager_item, container, false)
}
СПАСИБО В ПРЕДЕЛАХ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!