Может ли кто-нибудь помочь мне решить проблему, когда fragment
перезагружает данные каждую вкладку назад.
Это моя основная деятельность
class MainActivity : AppCompatActivity() {
private fun addBottomView(){
bottomNav.setOnNavigationItemSelectedListener(object: BottomNavigationView.OnNavigationItemSelectedListener{
override fun onNavigationItemSelected(p0: MenuItem): Boolean {
var selectedItem: Fragment? = null
when(p0.itemId){
R.id.words ->
selectedItem = FragmentA.newInstance()
R.id.writing ->
selectedItem = FragmentB.newInstance()
R.id.speaking ->
selectedItem = FragmentC.newInstance()
R.id.reading ->
selectedItem = FragmentD.newInstance()
}
var ft: FragmentTransaction = supportFragmentManager.beginTransaction()
ft.replace(R.id.frame_layout, selectedItem!!)
ft.commit()
return true
}
})
var ft: FragmentTransaction = supportFragmentManager.beginTransaction()
ft.replace(R.id.frame_layout, WordsFragment.newInstance())
ft.commit()
}
}
Я нашел в Интернете и на YouTube видео, но никто не ответил на эти вопросы точно, они рекомендовали использовать добавить , скрыть вместо заменить , но не так уверен, как это сделать. если возможно, можете ли вы, ребята, объяснить это так же ясно, как вы можете:)
Это мой ViewPageAdapter
class ViewPagerAdapter: FragmentPagerAdapter {
private val mFragmentList: MutableList<Fragment> = mutableListOf()
private val mFragmentTitleList : MutableList<String> = mutableListOf()
constructor(manager: FragmentManager) : super(manager){
}
fun addFragment(fragment: Fragment, title: String){
mFragmentList.add(fragment)
mFragmentTitleList.add(title)
}
override fun getItem(position: Int): Fragment {
return mFragmentList.get(position)
}
override fun getCount(): Int {
return mFragmentList.size
}
override fun getPageTitle(position: Int): CharSequence? {
return mFragmentTitleList.get(position)
}
}
Спасибо