Я реализовал макет вкладок и viewpager2, чтобы показать 2 фрагмента. То же самое происходит, когда я использую нижний вид навигации сверху и navhostfragment. Иногда, когда я выбираю первую вкладку, все нормально. Но после выбора другой вкладки поле появляется вверху. скриншот
макет окна просмотра
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".tabs.dictionary_translate_tab.DictionaryTransTab">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
</layout>
class DictionaryTransTab : Fragment() {
lateinit var binding: FragmentDictionaryTransTabBinding
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_dictionary_trans_tab, container, false)
binding.viewPager.adapter = DictionaryTransViewPagerAdapter(this)
TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position ->
tab.text = "OBJECT ${(position + 1)}"
}.attach()
return binding.root
}
class DictionaryTransViewPagerAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
var fragments = listOf(AccountFragment(), AccountFragment())
override fun getItemCount(): Int = fragments.size
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}
}