Как скрыть счетчик, который находится в панели инструментов, когда активность загружается изначально? - PullRequest
0 голосов
/ 30 января 2019

Я хочу, чтобы спиннер исчезал для определенных фрагментов, но когда действие впервые загружается во фрагмент по умолчанию, спиннер виден, а не ушел.Я пытался поместить его в 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 голосов
/ 05 февраля 2019

Сначала в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...