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



Я использую 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 (на версиях ниже honeycomb). Но в ICS у меня есть тень ниже actionbar, которую я не хочу. что такое элемент стиля, чтобы он исчез?

528   10  

10 ответов:

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

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

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

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

getSupportActionBar().setElevation(0);

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

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

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

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

пример стиля для темы AppCompat light:

<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>

затем примените этот пользовательский стиль панели действий к теме приложения:

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

для pre 5.0 Android, добавьте это тоже в тему вашего приложения:

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

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

getSupportActionBar().setElevation(0);

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

добавить app:elevation="0dp" в AppBarLayout для скрытия тени в appbar

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

в вашей теме добавьте это:

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

вы должны установить приложение: elevetor= " 0dp " в android.поддержка.дизайн.штучка.AppBarLayout, а затем он работает :D

<android.support.design.widget.AppBarLayout
    app:elevation="0dp"... >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@android:color/transparent"
        app:popupTheme="@style/AppTheme.PopupOverlay" >


    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>
app:elevation="0dp" 

а не

android:elevation="0dp"

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

у меня эта же проблема, и я успешно решил эту проблему. Все, что вам нужно сделать, это просто изменить высоту на 0 значение с плавающей запятой в том действии, в котором вы хотите удалить высоту.

если вы хотите изменить его в акции под названием MyActivity.java Так надо ActionBar первый.

сначала импортировать ActionBar класс

import android.support.v7.app.ActionBar;

после импорта вы должны инициализировать переменную панели действий и настроить ее до уровня 0.

 private ActionBar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    .
    .
    toolbar=getSupportActionBar();
    toolbar.setElevation(0);
    .
    .
    }

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

для тех, кто работает над фрагментами и он исчез после установки toolbar.getBackground().setAlpha(0); или любое исчезновение, я думаю, что вы должны довести свой AppBarLayout до последнего в xml, поэтому его фрагмент затем AppBarLayout затем relativelayout/constraint/linear в зависимости от использования u.

Comments

    Ничего не найдено.