gpt4 book ai didi

android - 在 View Pager 的一个 fragment 中显示菜单

转载 作者:行者123 更新时间:2023-11-30 01:38:54 25 4
gpt4 key购买 nike

我有包含 3 个 fragment 的 Viewpager。我只想在其中一个 fragment 中显示菜单。

第一,我不知道为什么 toolbar.inflateMenu 不起作用。

第二,如果我有 onPrepareOptionsMenu 方法并执行此操作,则菜单可以正常工作

getMenuInflater().inflate(R.menu.add_user, menu); 但菜单显示在所有 fragment 中。

于是,根据stack overflow中的其他问题,我实现了下面的代码,但是没有显示菜单,进入了方法但是没有显示菜单。

override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
//getMenuInflater().inflate(R.menu.add_user, menu);
info("Menu=>${tabs_viewpager.currentItem}")
val menuItem = menu?.findItem(R.id.addUserMenu)
menuItem?.setVisible(tabs_viewpager.currentItem == 1)
return true
}

控件进入此方法并显示 currentItem。但它不显示菜单。菜单有 id。有人可以指导我如何纠正才能完成这项工作吗?

最佳答案

尝试调用 setHasOptionsMenu(true);在您希望显示菜单的 fragment 的 oncreate() 中(您可以在不希望显示菜单的 fragment 中将其设置为 false)。

还包括:

@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// your code
}

在您要设置/更改菜单的 fragment 中。每次显示菜单之前都会调用它。

您还可以调用 invalidateOptionsMenu()supportInvalidateOptionsMenu()(如果您使用的是支持库)来强制执行 onPrepareOptionsMenu(menu) 被调用。

您可能想查看 this menus tutorial

祝你好运

克莱夫

关于android - 在 View Pager 的一个 fragment 中显示菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777016/

25 4 0