Подтвердить что ты не робот

Сделать вкладки в ActionBar прокручивать, когда достигнут предел, а не создавать выпадающий список

Как видно из названия, у меня есть приложение Android 4.0 Tablet, в котором используются Actionbar и режим вкладок.

Если я добавлю в панель действий больше 4 или 5 вкладок, вместо этого создается раскрывающийся список. Я прочитал документацию, в которой говорится: "Примечание. В некоторых случаях система Android будет отображать вкладки панели действий в виде раскрывающегося списка, чтобы обеспечить наилучшую посадку в панели действий".

Было просто интересно, можно ли переопределить поведение по умолчанию и заставить панель действий прокручивать элементы? В конструкторском документе http://developer.android.com/design/patterns/actionbar.html говорится о прокручиваемых вкладках, но я не могу найти никакой информации о них, кроме как в конструкторском документе.

4b9b3361

Ответ 1

Я изо всех сил пытаюсь заставить это работать. Тем не менее, после игры с ActionBarSherlock, решение раздражающе легко. Если вы загружаете образец Styled source и смотрите в классе MainActivity, вы можете увидеть его создание и добавление вкладок и ниже:

actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

Я назвал их ПЕРЕД добавлением вкладок, и мои вкладки были превращены в раскрывающийся список. Оказывается, все, что вам нужно сделать, это вызвать их после добавления вкладок, чтобы сохранить вкладки прокрутки.

Ответ 2

Прочтите раздел "Добавление вида действия" из http://developer.android.com/guide/topics/ui/actionbar.html

Вид действия - это виджет, который появляется на панели действий в качестве замены кнопки элемента действия.

Вы можете использовать HorizontalScrollView в качестве вида действия, указав

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/mytabwidget"
      android:title=""
      android:icon="@drawable/ic_launcher"
      android:showAsAction="always"
      android:actionViewClass="android.widget.HorizontalScrollView" />
</menu>

Получить ссылку на этот HorizontalScrollView в public boolean onCreateOptionsMenu(Menu menu)

Определите RadioGroup с некоторым RadioButton, где каждый RadioButton при выборе будет обновлять содержимое связанных вкладок. Теперь добавьте этот RadioGroup в HorizontalScrollView, который вы получите в public boolean onCreateOptionsMenu(Menu menu)

Вы можете использовать selectTab(ActionBar.Tab tab) или какой-либо другой эквивалентный метод для обновления содержимого табуляций.

Вы можете изменить внешний вид RadioButton, установив android:button на прозрачное изображение, а затем установив некоторые StateListDrawable с установленными состояниями, выбранными и обычными.

См. ниже экран. Я использовал этот метод.

enter image description here

В приведенном выше изображении каждый RadioButton, когда установлен, выбирает другую вкладку.

Ответ 3

Вы проверили образец приложения Honeycomb Gallery в SDK? У него может быть то, что вы ищете. Установите его на не-планшетное устройство ICS, чтобы просмотреть прокручиваемые вкладки. Планшет имеет слишком большое пространство для прокрутки.

http://developer.android.com/resources/samples/HoneycombGallery/index.html

Ответ 4

Пользовательский интерфейс работает так, как по какой-то причине. Очень сложно использовать прокручиваемый набор вкладок. Существует хорошая вероятность, что совершенно не ясно, что справа есть больше вкладок, и пользователь никогда не узнает, что они могут прокручивать вкладки, чтобы получить больше возможностей.

Я рекомендую придерживаться того, как платформа предназначена для работы. Обычно это происходит по какой-то причине.