删除操作栏下方的阴影
我使用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然后相对布局/约束/线性无论你使用。