2016-01-23 33 views
9

Tôi đang cố gắng thêm bóng vào thanh công cụ bằng cách sử dụng độ cao và Thư viện thiết kế. Mã bố cục giống như sau:Thanh công cụ có chiều cao và bóng không đúng

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

Mã nguồn ứng dụng hoàn chỉnh có sẵn trên github.

Vấn đề là chiều cao thanh công cụ hoặc bóng không hoạt động như tôi mong đợi. Nếu bạn xem ảnh chụp màn hình dưới đây, bạn có thể nhận thấy sự cố.

Điều tôi cần làm là hiển thị bóng bên dưới vùng màu xanh dương.

Current Toolbar

Mọi gợi ý đều được đánh giá cao.

+2

Bóng thả có thể đến từ độ cao của bạn. Ngoài ra, tôi chưa bao giờ sử dụng 'CollapsingToolbarLayout', cũng như' AppBarLayout', và vì vậy tôi thậm chí không thực sự biết ý của bạn về chiều cao của bạn không hoạt động như mong đợi. – CommonsWare

Trả lời

6

Như đã đề cập there, đó là bởi thi hành CollapsingToolbarLayout - độ cao được gỡ bỏ nếu CollapsingToolbarLayout cho thấy không gắn yếu tố:

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

Vì vậy, tất cả tôi có thể đề nghị là để làm của riêng CollapsingToolbarLayout của bạn bằng cách sao chép bản gốc CollapsingToolbarLayout từ Google và thực hiện thay đổi trong điều kiện này.

4

Di chuyển độ cao lên AppBarLayout. CollapsingToolbarLayout thay đổi kích thước, do đó, thiết lập nó trên AppBarLayout tạo bóng ở đúng vị trí.

<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

Cảm ơn bạn rất nhiều vì câu trả lời nhanh chóng của bạn. Tôi đã thử điều đó, do đó, thêm màu nền cho AppBarLayout và nó không hoạt động. – RobertoAllende

Các vấn đề liên quan