Добавить тень на ActionBar - PullRequest
3 голосов
/ 14 марта 2012

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

    <item name="android:textColor">@color/white</item>
    <item name="android:shadowRadius">1</item>
    <item name="android:shadowColor">@color/black</item>
    <item name="android:shadowDy">1</item>

но пока работает textColor, тень - нет. Я использую ActionBarSherlock 3.5, но я думаю, что он не будет работать на родной.

Спасибо

Ответы [ 3 ]

2 голосов
/ 28 марта 2012

Я не могу заставить это работать ни на нативном, ни на бэкпорте ABS. Использование упомянутого подхода здесь прекрасно работает. Для макета android: customNavigationLayout вы можете просто добавить один textView с вашим стилем. У этого недостатка есть необходимость устанавливать заголовок программно в вашей деятельности / основной деятельности. Это можно сделать, выбрав значение из Activity.getTitle () , что и делает панель действий, если установлен заголовок. Не хватает времени, чтобы заглянуть дальше!

ps Привет, Крис!

1 голос
/ 10 октября 2014

Добавление тени под заголовком (нативного) ActionBar работает, начиная с API Level 18 (Android Jelly Bean 4.3). Прекрасно работает в API Level 19 (Android KitKat 4.4).

Протестировано на симуляторах и собственных устройствах, начиная с API Level 15 (Android Ice Cream Sandwich 4.0.3 - 4.0.4).

<!-- Settings activity theme -->
<style name="AppSettingsTheme" parent="android:Theme.Holo.Light">
    <!-- Set the action bar custom style -->
    <item name="android:actionBarStyle">@style/AppActionBar</item>
</style>

<!-- Action bar style -->
<style name="AppActionBar" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:titleTextStyle">@style/AppActionBarTitleText</item>
    <item name="android:displayOptions">showTitle</item>
</style>

<!-- ActionBar title text -->
<style name="AppActionBarTitleText"
    parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white_text</item>
    <item name="android:shadowColor">@color/text_shadow</item>
    <item name="android:shadowDx">3</item>
    <item name="android:shadowDy">3</item>
    <item name="android:shadowRadius">1.5</item>
</style>

Это скриншот из эмулятора API 18:

enter image description here

1 голос
/ 14 марта 2012

Я не пробовал на нативном, но, как упоминает Джейк, если он не работает на нативном, он не будет поддерживать его в ABS.

Если вы действительно хотите переопределить его, и этоРаботайте ТОЛЬКО на pre 3.2 (или 4.0 с ABS 4.X). Затем вы можете взять res/layout/abs__action_bar_title_item.xml, вставить его в свой проект и изменить:

<com.actionbarsherlock.internal.widget.ScrollingTextView
        android:id="@+id/abs__action_bar_title"
        ...
        android:shadowRadius="1"
        ... />

Конечно, я не рекомендую это!Как это не будет работать на нативных реализациях.

...