我如何移除安卓ActionBar的阴影?

6
我正在使用Android Studio进行编程。目标SDK是23,最小SDK是15。
我正在尝试删除我的操作栏和滑动选项卡布局之间的阴影,但我做不到。
注意:阴影只在Android 5及更高版本中可见。
我已经使用了<item name="elevation">0dp</item>getSupportActionBar().setElevation(0);,但仍然没有效果...

enter image description here

我的样式.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>

我的风格 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>

我的 MainActivity.java 的 onCreate 代码:

 @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);

....


可能是移除Actionbar下方的阴影的重复问题。 - Jian
2个回答

10

你的样式缺少前缀。

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

话虽如此,你也可以直接在你的 AppBarLayout 上设置它。

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

或者我喜欢的做法是将SlidingTabLayout移动到AppBarLayout中,这样阴影就会出现在它下面:

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

上一个代码片段的输出


谢谢你,非常感谢我也把选项卡移到了应用栏,问题解决了祝你好运 - K1-Aria
不用谢。如果我的回答解决了你的问题,请别忘了接受或点赞。 - Cory Charlton

3
尝试通过支持库将高度设为0。
<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:elevation="0dp"
    android:theme="@style/AppTheme.AppBarOverlay">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接