Intereting Posts
Совместим ли arm64-v8a с armeabi-v7a? Нет ошибки «Только исходный поток, создавший иерархию представлений, может коснуться его представлений», когда представление обновляется без задержки Быстрый поиск по имени файла Android studio DatabaseReference и FirebaseDatabase – не могут разрешить символ Как открыть PDF через Intent с SD-карты Как отключить перепросмотр ListView в Android 2.2? FragmentManager заменить vs Добавить Можно ли получить доступ только для чтения к базе данных sqlite в apk? Android: макеты «скользят» с экрана? Как открыть PDF-файл в приложении для Android и разрешить пользователям использовать встроенные гиперссылки? Службы Google Location Services и службы поиска на Android Приложение начинает поиск GPS прямо при запуске приложения, а не при необходимости. Как получить одно и то же соединение xmpp из одной активности в другую? Авария Firebase на Android во время анонимного входа Каков наилучший способ использования общих настроек между действиями

Стиль 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);