隐藏操作栏onCreateOptionsMenu图标,用于某些活动和片段android

时间:2014-05-21 05:24:04

标签: android android-actionbar

使用带有操作栏类的谷歌导航抽屉实现了滑动菜单。我的问题是onCreateOptionsMenu正在每个活动中显示。如何使onCreateOptionsMenu图标随意可见和不可见。请问。

 public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
          com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
          inflater.inflate(R.layout.menu, menu);
    }

    public boolean onOptionsItemSelected(MenuItem item) {
          // Handle item selection
          switch (item.getItemId()) {
          case R.id.settings:
              Intent i=new Intent(class1.this, clas2.class);
              startActivity(i);
              return true;
          }
          return false;
    }

2 个答案:

答案 0 :(得分:0)

您可以根据需要创建菜单运行时或具有不同的菜单布局,并且在活动集的onCreateOptionsMenu中,布局或运行时创建这些菜单,或者如果您不想显示菜单图标,那么只需执行{{1 }}

活动A

menu.clear()

活动B

        public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
                  com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
                  inflater.inflate(R.layout.menu_a, menu);
            }

            public boolean onOptionsItemSelected(MenuItem item) {
                  // Handle item selection
                  switch (item.getItemId()) {
                  case R.id.settings:
                      Intent i=new Intent(class1.this, clas2.class);
                      startActivity(i);
                      return true;
                  }
                  return false;
            }

答案 1 :(得分:0)

要在操作栏上隐藏或显示某些图标,您需要覆盖方法:

@覆盖 public boolean onPrepareOptionsMenu(菜单菜单) {

MenuItem your_icon = menu.findItem(R.id.action_your_icon);


//show icon
your_icon.setvisible(true);
//hide icon
your_icon.setvisible(false);

...

}

此外,当操作栏项目发生变化时,您需要'supportInvalidateOptionsMenu()'来使活动的选项菜单无效