我有我的viewpager如下:
val pagerAdapter = ViewPagerAdapter()
viewPager2.apply { offscreenPageLimit = 2; adapter = pagerAdapter }
override fun createFragment(position: Int): Fragment = list[position].fragment
所以所有的碎片从一开始就膨胀了。
但我不知道如何或在哪里从每个片段中为我的操作栏膨胀菜单。因为如果我这样膨胀它:
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = FragmentGenericBinding.inflate(inflater, container, false)
setHasOptionsMenu(true)
return bind.root
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_add, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.menu_add -> FragmentAddMenu().show(parentFragmentManager, "Add Menu")
}
return super.onOptionsItemSelected(item)
}
override fun onResume() {
super.onResume()
(requireActivity() as AppCompatActivity).supportActionBar?.title = "Menú"
}
The actionbar menu and title in the first tablayout snippet is from the last inflated fragment.
如果我在片段之间切换,它们会正确地膨胀。但它只发生在应用程序的第一个片段开始时。
我希望能够膨胀每一个菜单,一旦片段是r,esumed,但我找不到任何例子在互联网上或任何方式绕过这个问题.如果我不清理菜单上的每一个膨胀,按钮积累.
actionar是主Activity布局中的一个工具栏,如果每个片段都有一个工具栏而不添加到主Activity中会更容易一些。但如果将片段更改为包含所有内容和工具栏,这看起来很糟糕。
1条答案
按热度按时间k5ifujac1#
我刚动
转到onResume方法