gpt4 book ai didi

android - 试图隐藏和显示操作栏上的菜单项

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:33:15 24 4
gpt4 key购买 nike

我已经查看了关于堆栈溢出的问题,但找不到解决方案。

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.themenu, menu);
MenuItem item = menu.findItem(R.id.menu_settings);
MenuItem item2 = menu.findItem(R.id.menu_save);
item.setVisible(isdown);
item2.setVisible(isdown);
return true;
}

这会将我的菜单项设置为可见(item1 和 item2)。 onclick 工作正常

public void inflateTextarea() {
if(isdown == true) {
isdown = false;
LinearLayout tl = (LinearLayout)findViewById(R.id.content);
tl.setVisibility(View.VISIBLE);
ScaleAnimation scale = new ScaleAnimation(1, 1, 0, 1);
scale.setFillAfter(true);
scale.setDuration(500);
tl.startAnimation(scale);
}
}

然后这会将我的 isdown bool 值设置为 false。在堆栈上,人们说我每次单击时都应该触发 onPrepareOptionsMenu,但事实并非如此。我可以在 onclick 函数上隐藏一个菜单项

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_settings:
Log.v("Log:","edit_item pressed");
return true;
}
}

但是我有多个需要隐藏的菜单项和其他我想显示的菜单项。我该怎么做?

最佳答案

改变isDown 变量是不够的。每次要更改可见性时,都必须调用 setVisible() 方法。该方法不仅仅是设置一个 bool 值,所以仅仅改变一个 bool 值是不行的。

isDown 值更改为 false 后,您需要调用 invalidateOptionsMenu(),这将通过调用 onPrepareOptionsMenu() 重新启动菜单> 再次。

尝试使用此代码使菜单项不可见:

...
isdown = false;
invalidateOptionsMenu();
...

关于android - 试图隐藏和显示操作栏上的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com