删除操作栏下方的阴影

我使用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中,我有一个低于actionbar的影子,我不想要。 什么是风格项目,使其消失?

什么是风格项目,使其消失?

为了移除阴影,请将此添加到您的应用主题中:

 <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灯光主题的样式示例:

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

对于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样式项的影响,因此不需要更改样式

如果您正在使用ActionBarSherlock

在你的主题添加这个:

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

在AppBarLayout中添加app:elevation="0dp" ,以隐藏appbar中的阴影

你必须在android.support.design.widget.AppBarLayout中设置app:elevetor =“0dp”,然后才能工作: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; 

导入后,你必须初始化一个variables的操作栏,并将其高程设置为0。

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

对于那些在碎片上工作的人,设置toolbar.getBackground().setAlpha(0); 或任何消失,我想你必须把你的AppBarLayout到最后的XML,所以它的片段,然后AppBarLayout然后相对布局/约束/线性无论你使用。