Кнопка и вкладки Android ActionBar - PullRequest
       13

Кнопка и вкладки Android ActionBar

10 голосов
/ 15 декабря 2011

Я хочу создать ActionBar и навигацию с вкладками, как приложение Google +.

Я использовал этот пример в качестве отправной точки, и теперь у меня есть отличная панель действий:

Я также включил ViewPager и TabHost для вкладок и прокрутки фрагментов влево / вправо.

Что мне нужно, так это показать стрелку назад в версии до соты. Если я установлю getActionBar().setDisplayHomeAsUpEnabled(true), стрелка автоматически отобразится в версии> = honeycomb.

  • Как я могу сделать это в версии до меда?

Я также хочу иметь вкладки, такие как приложение Google +.

Вот так выглядит моя панель вкладок:

удалена мертвая ссылка ImageShack

... и вот что я хочу:

удалена мертвая ссылка ImageShack

Я не могу найти ни одного примера для стиля панелей вкладок, как этот.

Ответы [ 4 ]

21 голосов
/ 20 февраля 2012

Я бы порекомендовал вам ActionBarSherlock для совместимости ActionBar с Android <3. Это лучшая реализация, чем пример, предложенный на странице разработчиков. </p>

Используя этот пакет, стрелка назад появится, когда вы добавите в свою деятельность следующую строку.

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Что касается вкладок Google+, я нашел виджет ViewFlow очень полезным и выглядит точно так же. Более того, у вас нет проблем с обратной совместимостью. Взгляните на пример CircleFlowIndicator.

4 голосов
/ 01 марта 2013

Вы можете использовать ActionBarSherlock и ViewPager с ViewPagerIndicator для достижения желаемого вида. Эти библиотеки также работают до ICS.

Как и предположил miguel.rodelas, используйте getSupportActionBar (). SetDisplayHomeAsUpEnabled (true) для домашней стрелки. В onOptionsItemSelected вы можете поймать его по идентификатору android.R.id.home.

3 голосов
/ 15 декабря 2011
ActionBar actionBar = getActionBar();
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);

// здесь можно использовать свой пользовательский xml-просмотр

View actionBarView = getLayoutInflater().inflate(R.layout.action_bar_custom_view, null);
        actionBar.setCustomView(actionBarView);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

// ваша логика для списка кликов

setListenerForActionBarCustomView(actionBarView);
2 голосов
/ 05 марта 2013

Как уже говорилось, скачайте ActionBarSherlock и импортируйте его как библиотеку здесь https://api.github.com/repos/JakeWharton/ActionBarSherlock/zipball/4.2.0

  • Вместо использования getActionBar используйте getSupportActionBar
  • Скачать библиотеку поддержки
  • Вместо Activity расширите свой класс как SherlockActivity
  • То же самое с фрагментами, используйте SherlockFragment

Тогда просто скопируйте свой код, он должен отлично работать.

...