高度和阴影错误的工具栏

时间:2016-01-23 23:56:38

标签: android material-design android-design-library

我正在尝试使用高程和设计库将阴影添加到工具栏。布局代码类似于:

<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上提供的完整应用程序源代码。

问题是工具栏高度或阴影的行为不符合我的预期。如果您观看下面的屏幕截图,您会发现问题。

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

Current Toolbar

非常感谢任何提示。

2 个答案:

答案 0 :(得分:6)

如上所述[{3}},实施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);
}

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

答案 1 :(得分:4)

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

var