Android BackButton и вкладки ActionBar
Я хочу создать ActionBar
и вкладку навигации, например google +.
Я использовал этот пример в качестве отправной точки, и теперь у меня отличная панель действий:
Я также включил ViewPager
и TabHost
, чтобы иметь вкладки и прокручивать левые/правые фрагменты.
Мне нужно показать обратную стрелку в версии до соты.
Если я устанавливаю getActionBar().setDisplayHomeAsUpEnabled(true)
, стрелка автоматически отображается в версии >= сотовый.
- Как я могу сделать это в версии до меда?
То, что я также хочу иметь, - это вкладки, подобные Google +.
Вот как выглядит панель вкладок:
удалена мертвая ссылка ImageShack
... и это то, что я хочу:
удалена мертвая ссылка ImageShack
Я не могу найти какой-либо пример для стилей таблиц табуляции, подобных этому.
Ответы
Ответ 1
Я бы рекомендовал вам ActionBarSherlock для совместимости ActionBar с Android < 3. Это более эффективная реализация, представленная на странице разработчиков.
Используя этот пакет, стрелка назад появится, когда вы добавите в свою деятельность следующую строку.
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Что касается вкладок Google+, я нашел виджет ViewFlow очень полезным и выглядящим точно таким же. Более того, у вас нет проблем с обратной совместимостью. Посмотрите на пример CircleFlowIndicator.
Ответ 2
Вы можете использовать ActionBarSherlock и ViewPager с ViewPagerIndicator, чтобы добиться желаемого внешнего вида. Эти библиотеки также работают до ICS.
Как предложил miguel.rodelas, используйте getSupportActionBar(). setDisplayHomeAsUpEnabled (true) для домашней стрелки. В onOptionsItemSelected вы можете поймать его id android.R.id.home.
Ответ 3
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);
Ответ 4
Как указано, загрузите ActionBarSherlock и импортируйте его как библиотеку здесь
https://api.github.com/repos/JakeWharton/ActionBarSherlock/zipball/4.2.0
- Вместо использования getActionBar используйте getSupportActionBar
- Загрузите библиотеку поддержки
- Вместо активности расширьте свой класс как SherlockActivity
- То же, что и фрагменты, используйте "Шерлок-Фрагмент"
Затем просто скопируйте свой код, он должен работать отлично.