Intereting Posts
Android SDK Manager не показывает какие-либо пакеты для установки Настройка вертикальной полосы прокрутки Android ScrollView Передаёт ли контекст из Activity в статический класс эту активность навсегда? Утечка памяти? Ошибка: (39, 13) Не удалось решить: com.android.support:appcompat-v7:26.0.0 ViewPager of Fragment не показывает свое содержимое, когда корневой фрагмент заменяется снова При тестировании пользовательского интерфейса Android, как правильно подождать, пока пользовательский интерфейс будет готов? ViewPager с вложенными фрагментами? Какова ценность REQUEST_CHECK_SETTINGS? Как центрировать вектор, который можно рисовать в списке слоев без масштабирования SendUserActionEvent () – null Встраивание YouTube iframe не может автоматически запускаться на Android Принудительная клавиатура открыта на android Exoplayer: Как играть аудио через ушную часть? Android SQLiteMisuseException при вызове database.rawQuery Получить подпись apk во время выполнения для Android

Настройка вкладок ActionBar на Android 4

Я пытаюсь настроить вкладки на своем ActionBar. Я просто хочу выровнять вкладки на экране телефона и сделать его растягиваемым для разных экранов. Но все, что я получаю, это:

Введите описание изображения здесь

Код, который я использую для темы, таков:

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarTabTextStyle">@style/MyActionBarTabTextStyle</item> </style> <style name="MyActionBarTabTextStyle" parent="@android:style/Widget.Holo.Light.Tab"> <item name="android:textSize">14dip</item> <item name="android:padding">0dip</item> </style> </resources> 

Можно ли просто уменьшить шрифт и избавиться от этих синих линий?

Благодарим за помощь заранее.

PS: Также кнопка действует странно. Нет текста (пока он должен быть) …

Solutions Collecting From Web of "Настройка вкладок ActionBar на Android 4"

Изменить: использовать ActionBarCompat в библиотеке поддержки.


Я предлагаю вам использовать ActionBarSherlock от Джейка Уортона по двум причинам:

  1. ActionBarSherlock – это расширение библиотеки совместимости, которая облегчает использование панели действий во всех версиях Android. Это означает, что пользователи, запускающие ваше приложение на версиях Android до HoneyComb, смогут также использовать ActionBar для навигации. Это предпочтительнее и для пользователя (так как ActionBar является удивительным!) И вам (поскольку вам не нужно беспокоиться о том, чтобы отделить поток управления вашего приложения на основании того ActionBar будет ли доступен ActionBar . Например, без Совместимый с Pre-HoneyComb ActionBar , вам, возможно, придется беспокоиться о создании нескольких Activity s для одного экрана … который оптимизирован для использования с ActionBar , и тот, который может быть запущен на устройствах pre-HoneyComb.

  2. С помощью ActionBarSherlock стилизация вашего ActionBar проста! Я мог подробно рассказать о том, как это сделать, но в библиотеке уже есть много примеров кода, которые иллюстрируют, как вы описываете выше.

Установка / использование библиотеки очень проста и почти идентична использованию обычного ActionBar предусмотренного в Android SDK (в основном просто вызывайте getSupportActionBar() вместо getActionBar() ). Если у вас есть какие-либо вопросы, дайте мне знать.

Ps Также обратите внимание, что ActionBarSherlock предоставляет все функции, которые предоставляет библиотека ViewPagerExtensions и многое другое. Я бы определенно рекомендовал использовать бывшего над последним.

Существует новый инструмент для создания правильных 9-кратных изображений для панели действий: http://jgilfelt.github.com/android-actionbarstylegenerator/

Я нашел использование руководств по стилям для вкладок, чтобы они были очень непоследовательны для сотов. Было гораздо проще просто раздувать пользовательский вид, который вам нужен.

 Fragment serivceFrag = new ServicesFragment(); Tab serviceTab = bar.newTab(); TextViewPlus serviceTabTextView =(TextViewPlus)getLayoutInflater().inflate(R.layout.tab_item_layout, null); serviceTabTextView.setText(servicesLabel); serviceTab.setCustomView(serviceTabTextView); serviceTab.setTabListener(new TabListenerFragment(serivceFrag,"Service",R.id.MainInfoPaneFragment)); bar.addTab(serviceTab); 

Это для меня было намного проще,

Изменить на:

 <style name="MyActionBarTabTextStyle" parent="@android:style/Widget.Holo.ActionBar.TabText"> <item name="android:textSize">14dip</item> <item name="android:padding">0dip</item> </style> 

Я думаю, что вы наследуете неправильный стиль, попробуйте:

 <style name="MyActionBarTabTextStyle" parent="android:TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textSize">14sp</item> <item name="android:padding">0dip</item> </style> 

EDIT: также убедитесь, что вы используете sp вместо dip для размера шрифта (14sp)

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

Кстати, если вы заглянете в код библиотеки, вы можете легко проделать эту тему самостоятельно.

Кроме того, если у вас есть проблемы с реализацией этого с помощью страницы фрагмента, посмотрите actionbarsherlock-tabs-multi-fragments

Вы можете использовать метод setCustomView .