最初加载活动时,如何隐藏微调器(位于工具栏中)?

时间:2019-01-29 22:47:56

标签: java xml android-studio

我想使某些片段的微调框消失,但是当活动首次加载到默认片段中时,微调框是可见的,而不是消失了。我试过将其放在onCreateOptionsMenu和onCreate中,但是它们不起作用。微调器位于与实际工具栏菜单不同的菜单中。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main_toolbar, menu);  //only contains icons 
    //which leads to intent of another activity and search

    getMenuInflater().inflate(R.menu.menu_main_toolbar_spinner, menu);
    MenuItem item = menu.findItem(R.id.menu_spinner_toolbar_main);
    Spinner spinner = (Spinner) item.getActionView();
    spinner.setVisibility(View.GONE);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.array_spinner_topics, android.R.layout.simple_spinner_dropdown_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    return true;
}

这是工具栏的微调器菜单(菜单标记为通常的xmlns)

<item
    android:id="@+id/menu_spinner_toolbar_main"
    app:actionViewClass="android.widget.Spinner"
    app:showAsAction="always"
    tools:ignore="MenuTitle" />

1 个答案:

答案 0 :(得分:0)

首先在xml中添加

android:visible="false"

然后在活动中,我写了

private int fragNumber = 1;

在onCreateOptionsMenu和onOptionsItemSelected下面,我启动了onPrepareOptionsMenu

public boolean onPrepareOptionsMenu (Menu menu) {
  MenuItem spinner = menu.findItem(R.id.menu_spinner_toolbar_main);
  if (fragNumber == 1) {
     spinner.setVisible(false);
  } else {
     spinner.setVisible(true);
  }
  return true;
}

然后在onNavigationItemSelected中,其中嵌入了片段加载器功能,然后将fragNumber设置为1或2。