android - studio - actionbarsherlock gradle




Удалить тень под панелью действий (7)

Я использую actionbarsherlock. Часть кода, приведенная ниже, отвечает за изменение фона на пользовательский.

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="background">@drawable/actionbar_bg</item>
    <item name="android:background">@drawable/actionbar_bg</item>
    <...>  
</style>

<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <..>
</style>

И он работает для actionbarsherlock (на версиях ниже сотовых). Но в ICS у меня есть тень под панелью действий, которую я не хочу. Что такое элемент стиля, чтобы он исчез?


Что такое элемент стиля, чтобы он исчез?

Чтобы удалить тень, добавьте это в свою тему приложения:

<style name="MyAppTheme" parent="android:Theme.Holo.Light">
    <item name="android:windowContentOverlay">@null</item>
</style>

ОБНОВЛЕНИЕ: Как заявила @ Quinny898, на Android 5.0 это изменилось, вам нужно вызвать setElevation(0) на панели действий. Обратите внимание: если вы используете библиотеку поддержки, вы должны вызвать ее так:

getSupportActionBar().setElevation(0);

add app:elevation="0dp" в AppBarLayout для скрытия тени в панели приложений


Для Android 5.0, если вы хотите установить его прямо в стиле, используйте:

<item name="android:elevation">0dp</item>

и для совместимости с библиотекой поддержки:

<item name="elevation">0dp</item>

Пример стиля для легкой темы AppCompat:

<style name="Theme.MyApp.ActionBar" parent="style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <!-- remove shadow below action bar -->
    <!-- <item name="android:elevation">0dp</item> -->
    <!-- Support library compatibility -->
    <item name="elevation">0dp</item>
</style>

Затем примените этот стиль ActionBar к теме приложения:

<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/Theme.MyApp.ActionBar</item>
</style>

Для Android до 5.0 Android добавьте это также в тему приложения:

<!-- Remove shadow below action bar Android < 5.0 -->
<item name="android:windowContentOverlay">@null</item>

Для разработчиков Xamarin используйте: SupportActionBar.Elevation = 0; для AppCompatActivity или ActionBar.Elevation = 0; для некоммерческих мероприятий


Если вы работаете с ActionBarSherlock

В своей теме добавьте следующее:

<style name="MyTheme" parent="Theme.Sherlock">
    ....
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    ....
</style>

На Android 5.0 это изменилось, вам нужно вызвать setElevation (0) на панели действий. Обратите внимание: если вы используете библиотеку поддержки, вы должны вызвать ее так:

getSupportActionBar().setElevation(0);

Это не влияет на элемент windowContentOverlay style, поэтому никаких изменений в стилях не требуется


app:elevation="0dp" 

но нет

android:elevation="0dp"

работал на меня на android L





actionbarsherlock