我有一个片段,其中带有带有Viewpager2的Tablayout,其中包含3个片段。起初它运行完美,但是当您导航到另一个片段然后返回时,它不会再次加载。
这是片段:
class PreGameFragment : Fragment() {
private lateinit var tabAdapter: PreGameAdapter
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding = DataBindingUtil.inflate<FragmentPreGameBinding>(
inflater,
R.layout.fragment_pre_game, container, false
)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
tabAdapter = PreGameAdapter(this)
pager_pre_game.adapter = tabAdapter
TabLayoutMediator(game_config_tab,pager_pre_game) {tab, position ->
tab.text = when(position){
0-> getString(R.string.pre_game_tab_armies)
1-> getString(R.string.pre_game_tab_primaries)
else ->getString(R.string.pre_game_tab_secondaries)
}
}.attach()
和适配器:
class PreGameAdapter (fragment: Fragment): FragmentStateAdapter(fragment) {
override fun getItemCount(): Int = 3
override fun createFragment(position: Int): Fragment {
val fragmentArmies = ArmiesFragment()
val fragmentPrimaries = MissionFragment()
val fragmentSecondaries = SecondariesFragment()
return when (position) {
0 -> fragmentArmies
1 -> fragmentPrimaries
else -> fragmentSecondaries
}
}
}