我的查看器如下:
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.
如果我在片段之間切換,它們會正確膨脹。但它只發生在第一個片段的應用程式開始時。
一旦片段被恢復,我希望能夠膨脹每個選單,但我在互聯網上找不到任何示例或任何解決問題的方法。如果每次充氣時我都不清理選單,按鈕就會累積。
actionar 是主活動布局中的工具列,如果每個片段都有一個工具列并且不添加到主活動中會更容易。但是用一切和工具列來改變片段看起來很糟糕。
uj5u.com熱心網友回復:
我只是移動
setHasOptiondMenu(true)
到 onResume 方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/495481.html