首页 文章

删除操作栏下方的阴影

提问于
浏览
186

我使用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中,我在动作栏下面有一个阴影,我不想要 . What is the style item to make it disappear?

10 回答

  • 102

    什么样的项目让它消失?

    要删除阴影,请将此添加到您的应用主题:

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

    UPDATE: 正如@ Quinny898所说,在Android 5.0上已经改变了,你必须在你的操作栏上调用 setElevation(0) . 请注意,如果您使用支持库,则必须将其调用为:

    getSupportActionBar().setElevation(0);
    
  • 22

    对于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>
    
  • 121

    在Android 5.0上已经改变了,你必须在你的操作栏上调用setElevation(0) . 请注意,如果您使用支持库,则必须将其调用为:

    getSupportActionBar().setElevation(0);
    

    它不受windowContentOverlay样式项的影响,因此不需要更改样式

  • 461

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

  • 43

    如果您正在使用ActionBarSherlock

    在你的主题中添加:

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

    您必须在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>
    
  • 0
    app:elevation="0dp"
    

    但不是

    android:elevation="0dp"
    

    在Android L上为我工作

  • 2

    我有同样的问题,我已成功解决了这个问题 . 您所要做的就是在要删除高程的活动中将高程更改为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);
        .
        .
        }
    
  • 1

    对于Xamarin开发人员,请使用: SupportActionBar.Elevation = 0; for AppCompatActivityActionBar.Elevation = 0; for non-compat Activities

  • 39

    对于那些处理碎片并且在设置 toolbar.getBackground().setAlpha(0); 或任何消失后消失的人,我认为你必须将你的AppBarLayout带到xml中的最后一个,所以它的Fragment然后是AppBarLayout然后是relativelayout / constraint / linear,无论你使用哪个 .

相关问题