How can I remove android actionbar Shadow

2019-04-07 14:51发布

I'm using Android Studio for programming. Target SDK is 23 and Minimum SDK is 15

I'm trying to remove the shadow between my actionbar and my sliding tab layout. But I'm not able to.

Note : The shadow is only visible in Android 5 and upper.

I have used <item name="elevation">0dp</item> and getSupportActionBar().setElevation(0); But still it doesn't work...

enter image description here

My Style.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>



<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>



<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
    <item name="elevation">0dp</item>
</style>

My Style V21

<resources>>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

My MainActivity.java onCreateCode:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    getSupportActionBar().setElevation(0);

....

2条回答
祖国的老花朵
2楼-- · 2019-04-07 15:13

You're missing the prefix in your style.

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

That said you could also set it directly on your AppBarLayout

<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:elevation="0dp"
    android:theme="@style/AppTheme.AppBarOverlay">

Or what I like to do is move the SlidingTabLayout into the AppBarLayout so the shadow appears below it:

<android.support.design.widget.AppBarLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:theme="@style/AppTheme.AppBarOverlay">

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

    <com.ccswe.SmokingLog.views.widgets.SlidingTabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/tab_layout_height"
        />

</android.support.design.widget.AppBarLayout>

Output from last code snippet

查看更多
放我归山
3楼-- · 2019-04-07 15:13

Try adding setting the elevation to 0 with the help of the support library

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:elevation="0dp"
    android:theme="@style/AppTheme.AppBarOverlay">
查看更多
登录 后发表回答