从另一个片段返回到片段后,带有FragmentStateAdapter和Viewpager2的片段不会加载

时间:2020-07-10 21:10:13

标签: android kotlin

我有一个片段,其中带有带有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

        }

    }

}

Before navigating out

Back in the fragment

0 个答案:

没有答案