У меня есть viewpager2, привязанный к tablayout с множеством разных фрагментов, содержащих текстовые представления, я не хочу, чтобы пользователь выбирал другую вкладку, если он не завершил некоторые из текстовых представлений для каждого фрагмента. Поэтому, когда пользователь выбирает другую вкладку, я показываю сообщение с просьбой завершить текущие данные фрагмента. Я пытался выбрать старую вкладку, когда пользователь выбирает другую вкладку в методе onTabUnselected для TabSelectedListener, но безуспешно. Вот код, пожалуйста, посмотрите комментарий TODO, где я хотел бы предотвратить изменение фрагмента.
viewPager = view.findViewById(R.id.mypager)
TabLayoutMediator(tabLayout, viewPager, true, false,
TabLayoutMediator.TabConfigurationStrategy { tab: TabLayout.Tab, position: Int ->
tab.text = titles[position]
}).attach()
tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
val currFragment= fragmentSet[tab!!.position]
if (!currFragment.validateFields()) {
//TODO: don't change tab, remain in this tab something like tab.aborselectedtTransition
}
}
override fun onTabReselected(tab: TabLayout.Tab?) {
}
})
Кто-нибудь может мне помочь?