onCreateOptionsMenu не вызывается при использовании ViewPager2 - PullRequest
0 голосов
/ 30 марта 2020

onCreateOptionsMenu в Activity не вызывается, когда я запускаю этот код в onCreate

viewPager.apply {
    adapter = HomeTabAdapter(activity)
}

Я использую новый ViewPager2 с FragmentStateAdapter. onCreateOptionsMenu не вызывается, когда я сначала устанавливаю адаптер viewpager, но onCreateOptionsMenu вызывается, если я не устанавливаю адаптер. поэтому мне любопытно, и я попытался вызвать вышеупомянутый код после надувания меню в onCreateOptionsMenu, и это работает, меню надувается, и адаптер также установлен. Почему это так?

Этот код работает нормально: (Я в замешательстве)

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.home_menu, menu)
    viewPager.apply {
        adapter = HomeTabAdapter(activity)
    }
    return true
}

Вот мой код для адаптера ViewPager2

class HomeTabAdapter(fragment: FragmentActivity) : FragmentStateAdapter(fragment) {
    override fun getItemCount(): Int = 3

    override fun createFragment(position: Int): Fragment {
       return when (position) {
          0 -> HomeFragment()
          1 -> HomeFragment()
          else -> OnboardingFragment()
       }
    }
 }

Что я пробовал:

  • Вызовах invalidateOptionsMenu () в onResume Activity

  • Попытка раздувать меню из фрагмента и действия при настройке setHasOptionsMenu (true) во фрагменте

У кого-нибудь есть решение?

...