我想使某些片段的微调框消失,但是当活动首次加载到默认片段中时,微调框是可见的,而不是消失了。我试过将其放在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" />
答案 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。