工具栏阴影未显示

时间:2019-08-16 20:48:59

标签: android android-appbarlayout appbar android-elevation

我的应用程序有一个带有tablayout的片段,它显示了一个带有高程的阴影:

 <android.support.design.widget.TabLayout
 android:id="@+id/my_music_tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/tab_bg"
    android:elevation="4dp"
    app:tabSelectedTextColor="?attr/color_tab_text_selected"
    app:tabTextColor="?attr/color_tab_text"
    app:tabIndicatorColor="?attr/color_tab_text_selected"
    app:tabIndicatorHeight="4dp" />

但是当我切换到另一个没有TabLayout的片段时,阴影不会出现:

 <android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay"
    app:expanded="true" >

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:titleEnabled="false" >

        <include
            layout="@layout/imageview_appbar"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@android:color/transparent"
            android:elevation="4dp"
            android:minHeight="?attr/actionBarSize"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            app:layout_collapseMode="pin" />

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

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

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

如果Appbarlayout包含可滚动折叠的工具栏,则不会显示阴影,可能会由于性能问题而对其进行硬编码。

尝试一些变通方法,例如在appbar的底部添加纯视图并将其背景设置为可绘制的阴影(手动编码的灰色渐变)

答案 1 :(得分:0)

通过将以下代码添加到我的MainActivity类中来使其工作:

    AppBarLayout layout = (AppBarLayout) findViewById(R.id.appbar);
    layout.setStateListAnimator(null);
    ViewCompat.setElevation(layout, 8);