【问题标题】:Android: Inflate menu (add items to action bar) only on click of a buttonAndroid:仅在单击按钮时膨胀菜单(将项目添加到操作栏)
【发布时间】:2016-06-14 09:05:33
【问题描述】:

我试图在 android 中仅在单击按钮时才为菜单充气。如何在不通过调用 onCreateOptionsMenu 自动创建的情况下实现它。 我希望菜单仅在单击按钮后出现。

【问题讨论】:

    标签: java android android-layout android-studio android-xml


    【解决方案1】:

    首先将此图标添加到您的操作 R.menu... 文件中并将可见性设置为 false。

    在我们的 java 文件中有一个布尔实例变量。

    private boolean isTickVisible = false;
    

    然后你需要像下面这样覆盖 OnPrepareOptions 菜单并设置勾选菜单的可见性。

     @Override
        public void onPrepareOptionsMenu(Menu menu) {
            super.onPrepareOptionsMenu(menu);
    
            MenuItem someMenuItem = menu.findItem(R.id.tick_menu_item);
            someMenuItem.setVisible(isTickVisible);
        }
    

    最后,您的按钮的 onClick 事件执行以下操作:

    isTickVisible = true;
    invalidateOptionsMenu(); //this will redraw your menu.
    

    【讨论】:

      【解决方案2】:

      我通过设置可见性解决了这个问题。膨胀布局并使其仅在单击按钮时可见。在 onClickListener 中添加一个标志 例如:隐藏=真;

      @Override
       public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.menu_search, menu);
      
      for (int i = 0; i < menu.size(); i++)
             if(Hide){
                  menu.getItem(i).setVisible(true);
                  }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多