Ошибка при смене языка в приложении
Инициализация ViewPager
viewPager = findViewById(R.id.pager)
viewPager.adapter = ViewPagerAdapter(this)
адаптер ViewPager
class ViewPagerAdapter(activity: AppCompatActivity): FragmentStateAdapter(activity) {
private val profileFragment = ProfileFragment()
private val messagesFragment = TwoFieldFragment()
override fun getItemCount(): Int = 2
override fun createFragment(position: Int): Fragment =
when (position){
0 -> ProfileFragment()
else -> TwoFieldFragment()
}
}
При смене языка в приложении, что он поменялся я вызываю код
override fun updateLanguage() {
startActivity(Intent(this, MainActivity::class.java))
finish()
}
Этот код закрывает мое активити и вызывает опять его, но уже с другим языком, но вот второй экран в ViewPager Пока сначала идет загрузка данных с инета, а потом загружает один из fragment в зависимояти от полученных данных
viewModel.liveData.observeForever {
if (layout.visibility == View.GONE) {
layout.visibility = View.VISIBLE
loadingProgressBar.visibility = View.GONE
}
Log.i("TwoFieldFragment","${childFragmentManager.fragments.size}")
if (childFragmentManager.fragments.isEmpty()) {
if (it.isEmpty()) {
childFragmentManager.beginTransaction()
.add(R.id.messages_field, EmptyFragment()).commit()
} else {
childFragmentManager.beginTransaction()
.add(R.id.messages_field, ChatListFragment.newInstance(it)).commit()
}
}}
но вот проблема в том что при скролле на второй экран вылнтает ошибка
java.lang.IllegalStateException: Fragment TwoFieldFragment{440bcb7} (9bed5961-64af-4db9-b44a-c2245957ec49)} has not been attached yet.
at androidx.fragment.app.Fragment.getChildFragmentManager(Fragment.java:980)
at com.io.unknow.ui.fragment.messagefragment.TwoFieldFragment$onViewCreated$1.onChanged(TwoFieldFragment.kt:45)
at com.io.unknow.ui.fragment.messagefragment.TwoFieldFragment$onViewCreated$1.onChanged(TwoFieldFragment.kt:19)