Intereting Posts
Мое текущее местоположение всегда возвращает null. Как я могу это исправить? Вызов метода активности из фрагмента Добавление растрового изображения водяного знака поверх видео в android: MediaMuxer 4.3 или ffmpeg Как создать несколько приложений для Android с одной базы кода Android-навигатор на нескольких мероприятиях CSRF в мобильных приложениях Как определить входные данные через аудиоразъем? Панель инструментов – переход от кнопки выдвижения к задней панели только с одним действием Как добавить вторую активность на Android Дважды нажмите кнопку «Назад», чтобы выйти из операции Как правильно использовать NDK-Build в Android Studio 2.2 Preview 1 Сжатие изображений, таких как Whatsapp и другие мессенджеры на Android Как удалить пример приложения из эмулятора Android? Android: как использовать getApplication и getApplicationContext из класса non activity / service Отключить мягкую клавиатуру из EditText, но разрешить копирование / вставку?

Стиль ActionCompat Actionbar

В настоящее время я пытаюсь использовать AppCompat вместо ActionbarSherlock. На устройствах Android 4+ я не сталкиваюсь с какими-либо проблемами, так как используются обычные темы Actionbar и Holo.

Панель действий ICS

Однако на более низких версиях Android этот странный вид возникает при использовании Theme.AppCompat.Light.

Стандартная панель действий AppCompat

Панель действий белая и имеет синюю линию внизу.

Я смог исправить это, используя генератор стилей Android Action Bar из Android Asset Studio, чтобы создать пользовательскую тему с твердой панелью действий вместо прозрачной.

AppCompat с пользовательскими выводами из генератора стилей

Сравнивая его с панелью действий, которую я получил при использовании ActionbarSherlock, это все равно довольно уродливо.

ActionBarSherlock

Панель действий AppCompat имеет эту очень четкую черную линию между собой и содержимым действия, в то время как панель действий ICS или одна из ActionbarSherlock имеет более мягкий переход от Actionbar к макету.

Как я могу создать стиль Actionbar, чтобы он выглядел так же, как на Android 4+?

Solutions Collecting From Web of "Стиль ActionCompat Actionbar"

Вы должны создать свой собственный стиль с изображением, которое вы хотите поместить на фон. В вашем стиле.xml вы должны создать нечто похожее на это:

Значения / styles.xml

<style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light"> <item name="actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item> </style> <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid"> <item name="background">@drawable/your_background_image</item> </style> 

Значения-V14 / styles.xml

  <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item> </style> <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid"> <item name="android:background">@drawable/your_background_image</item> </style> 

И вы можете использовать это изображение с 9 патчами:

Изображение с 9 патчами

Вы должны переопределить тему панели действий.

Я использую этот код:

 <resources> <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="actionBarStyle">@style/ActionBarTheme</item> </style> <style name="ActionBarTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid"> <item name="background">@color/red_action_bar</item> </style> </resources> 

Надеюсь, этот код очень поможет.

Чтобы показать пользовательский значок и цвет в AppCompatActivity, мы можем вставить этот код:

Значения / styles.xml

 <resources> <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat"> <item name="actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item> <item name="icon">@drawable/ic_launcher</item> </style> <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid"> <item name="background">@color/white</item> </style> 

Значения-V14 / styles.xml

 <resources> <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item> <item name="icon">@drawable/ic_launcher</item> </style> <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid"> <item name="android:background">@color/app_titile_bar_color</item> </style> 

Вы также можете использовать свой собственный фоновый рисунок из @ drawable / your_pic.png

Чтобы показать значок приложения и текст, вы также вставьте его в свою деятельность.

  // set action Bar icon & Text ActionBar mActionBar = getSupportActionBar(); mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);