Навигация по вкладкам ActionBar с пользовательскими панелями действий

У меня странное поведение с вкладками ActionBar, отображаемыми над панелью действий. Это происходит, когда я устанавливаю пользовательское представление для ActionBar. Я реализую шаблон Done-Discard, используя пример Романа Нурика здесь

Это происходит из-за маскировки ActionBar.DISPLAY_SHOW_HOME в setDisplayOptions()

final ActionBar actionBar = getActionBar();
    actionBar.setDisplayOptions(
            ActionBar.DISPLAY_SHOW_CUSTOM,
            ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
                    | ActionBar.DISPLAY_SHOW_TITLE);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setCustomView(customActionBarView, new ActionBar.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));

Экран выглядит так:

Но когда я не маскирую ActionBar.DISPLAY_SHOW_HOME, он работает нормально, но отображается логотип приложения. как это.

Кажется, это ошибка. Пожалуйста, предложите исправление. Я не хочу, чтобы логотип отображался.

2 ответа

Решение

Решение здесь:

ActionBarSherlock - вкладки появляются над панелью действий с пользовательским представлением

и здесь: https://github.com/JakeWharton/ActionBarSherlock/issues/327

Мне это кажется немного хакерским, но вот обходной путь: добавьте этот фрагмент кода в свой onCreate и скройте значок Home. Теперь ActionBar и Tabs работают как положено.

Не забудьте не отключать / маскировать DISPLAY_HOME_HOME в ActionBar.setDisplayOptions(). Это не будет работать, если вы замаскируете / отключите его.

View homeIcon = findViewById(android.R.id.home);
        ((View) homeIcon.getParent()).setVisibility(View.GONE);

Сначала установите свойство "DisplayShowHomeEnabled" панели действий в "true":

actionBar.setDisplayShowHomeEnabled (истина);

а потом:

View homeIcon = findViewById(android.R.id.home);
    ((View) homeIcon.getParent()).setVisibility(View.GONE);
    ((View) homeIcon).setVisibility(View.GONE);

Я надеюсь, что это помогает:)

Другие вопросы по тегам