2016-01-23 69 views
9

我想使用高程和設計庫將陰影添加到工具欄。佈局代碼類似於:高度和陰影錯誤的工具欄

<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

投影可能來自您的高程。除此之外,我從來沒有使用過'CollapsingToolbarLayout',也沒有'AppBarLayout',所以我甚至都不知道自己的身高對你的身高沒有達到預期的效果。 – CommonsWare

回答

6

如前所述there,它是通過實施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); 
} 

因此,所有我可以建議是通過複製原來的使自己的CollapsingToolbarLayout來自Google的CollapsingToolbarLayout,並對此情況進行更改。

4

將高程移至AppBarLayout。 CollapsingToolbarLayout的大小會發生變化,因此將其設置在AppBarLayout上會在正確的位置創建陰影。

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

非常感謝您的及時答覆。我已經嘗試過了,所以將背景顏色添加到AppBarLayout並且不起作用。 – RobertoAllende