工具栏有错误的高度和阴影

我正在尝试使用高程和devise库将阴影添加到工具栏。 布局代码是这样的:

<android.support.design.widget.CoordinatorLayout ... > <android.support.design.widget.AppBarLayout ... > <android.support.design.widget.CollapsingToolbarLayout ... > <android.support.v7.widget.Toolbar android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="?actionBarSize" app:contentInsetStart="16dp" android:background="@color/colorPrimary" android:elevation="16dp" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> 

完整的应用程序源代码在github上可用。

问题是工具栏高度或阴影不像我所期望的那样。 如果您看下面的屏幕截图,您可以注意到这个问题。

我需要做的是显示蓝色区域下面的阴影。

当前工具栏

任何提示都非常感激。

Solutions Collecting From Web of "工具栏有错误的高度和阴影"

如上所述,它是通过实现CollapsingToolbarLayout – 如果CollapsingToolbarLayout显示非固定元素,则会移除高程:

 if (Math.abs(verticalOffset) == scrollRange) { // If we have some pinned children, and we're offset to only show those views, // we want to be elevate ViewCompat.setElevation(layout, layout.getTargetElevation()); } else { // Otherwise, we're inline with the content ViewCompat.setElevation(layout, 0f); } 

所以,我可以build议的是通过从Google复制原始的CollapsingToolbarLayout来制作自己的CollapsingToolbarLayout ,并在此条件下进行更改。

将高程移到AppBarLayout。 CollapsingToolbarLayout的大小会发生变化,因此在AppBarLayout上设置它可以在正确的位置创build阴影。

 <android.support.design.widget.CoordinatorLayout ... > <android.support.design.widget.AppBarLayout android:elevation="16dp"> <android.support.design.widget.CollapsingToolbarLayout ... > <android.support.v7.widget.Toolbar ... /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout>