Intereting Posts
FragmentManager.getFragmens (). Size () не уменьшается после FragmentTransaction.remove (фрагмент) Как WebView наследует цвета от текущей темы Android? Android, Java – рендеринг видео с использованием растровых кадров для обратного просмотра видео (Xuggler) Android Spinner – onItemSelected / setOnItemSelectedListener не запускается Android – ImageView bottomCrop вместо centerCrop Как разобрать GCM ответить на удаление недопустимого идентификатора регистрации с сервера с помощью php Android sp vs dp text – что бы регулировать «масштаб» и что является философией поддержки Как получить завершающий ответ на setImageUrl с библиотекой Volley и NetworkImageView? Android: marginable margin и / или дополнение Отладка устройства Android через Bluetooth Android Parcelable – RetailerOrderActivity.java возвращает null Можно ли изменить, где сохраняются виртуальные устройства Android? View.isHardwareAccelerated () всегда false Есть ли способ определить, какая сотовая сеть используется на Android? Оптимизация 2 для Android: асинхронный запрос или синхронный запрос в AsyncTask?

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