Как создать Android ActionBar с настраиваемым видом и вкладками - PullRequest
5 голосов
/ 19 ноября 2011

Я хочу создать панель действий с вкладками (NAVIGATION_MODE_TABS) с настраиваемым представлением (DISPLAY_SHOW_CUSTOM). Это должно выглядеть так:

enter image description here

Мне просто нужно иметь возможность перемещаться по действиям с помощью кнопок в верхнем ряду - как я делал бы с ActionBar в обычном режиме без вкладок, а также иметь возможность переключать вкладки во втором ряду. Если я установлю ActionBar в режим с вкладками, пользовательское представление исчезнет, ​​кажется, что режим с вкладками и пользовательское представление взаимоисключающие ... Возможно ли это?

Есть и другие возможные способы сделать это без ActionBar. Обычно я бы создал макет с кнопками, включил его в TabActivity (который сейчас не рекомендуется) и все. Но я не думаю, что это будет лучшим решением, поэтому любая помощь или совет приветствуются.

Заранее спасибо.

РЕДАКТИРОВАТЬ: После небольшого исследования я обнаружил, что он работает, он просто не отображается на моем 4-дюймовом экране. Однако это все еще не работает, как я ожидал. На более широких экранах в правой части вкладок отображается пользовательский вид - это нормально, но на 4-дюймовых экранах телефонов он вообще не отображается.

Я думаю, что лучшим решением является использование библиотеки ActionBarSherlock (я не люблю использовать устаревшие функции, и мое приложение должно работать также на устройствах до версии sdk11) и фрагменты - один для верхнего ActionBar и второй для представления с вкладками.

1 Ответ

0 голосов
/ 10 января 2012

Кнопки в верхнем ряду должны быть добавлены как элементы меню Option:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    for (int i = 0; i < menuItems; i++)
    {
        if (i == 0)
        {
            menu.add(R.string.home).setIcon(R.drawable.button_home).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
            menu.getItem(0).setOnMenuItemClickListener(this);

        }
    }

    return super.onCreateOptionsMenu(menu);
}

Философия ActionBar несколько иная, чем я предполагал, когда спрашивал. Из Руководства разработчика Android:

Когда вы хотите предоставить вкладки навигации в действии, использование вкладок панели действий является отличным вариантом (вместо использования TabWidget), поскольку система адаптирует вкладки панели действий для разных размеров экрана, помещая их на главную панель действий. когда экран достаточно широк или в отдельной полосе (известной как «панель действий с накоплением»), когда экран слишком узкий.

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