5

Tôi có một số sự cố khi triển khai CollapsingToolbarLayout mới. Việc cuộn, mở rộng và thu gọn hoạt động tốt, nhưng ImageView của tôi (bất kể loại tài nguyên nào tôi đặt) không bao gồm chiều cao đầy đủ của thanh công cụ mở rộng. Xem ở đây:ImageView trong CollapsingToolbarLayout không bao gồm chiều cao đầy đủ?

expanded collapsed

Ở đây tôi đặt android:src="@color/red" trên xem hình ảnh, nhưng nó không bao giờ bao gồm các thanh công cụ thực sự. Nó cũng không hoạt động với bitmap. Tôi đang đăng bố cục của tôi bên dưới.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <!-- content --> 
    <android.support.design.widget.CoordinatorLayout 
     android:fitsSystemWindows="true" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.AppBarLayout 
      android:layout_height="@dimen/appbar_expanded_height" 
      android:layout_width="match_parent" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      android:fitsSystemWindows="true"> 
      <android.support.design.widget.CollapsingToolbarLayout 
       android:layout_height="match_parent" 
       android:layout_width="match_parent" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed" 
       app:expandedTitleMarginStart="48dp" 
       app:expandedTitleMarginEnd="64dp" 
       app:contentScrim="?attr/colorPrimary" 
       android:fitsSystemWindows="true"> 

       <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:fitsSystemWindows="true" 
        android:src="@color/red_600" 
        android:scaleType="centerCrop" 
        app:layout_collapseMode="parallax" 
        /> 
       <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar" 
        app:layout_collapseMode="pin" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize"> 
       </android.support.v7.widget.Toolbar> 

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

     <!-- I load fragments here --> 
     <FrameLayout 
      android:id="@+id/fragment_content" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
    </android.support.design.widget.CoordinatorLayout> 

    <!-- nav drawer --> 
    <fragment 
     android:layout_width="@dimen/drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start"/> 
</android.support.v4.widget.DrawerLayout> 

Dường như với tôi rằng sự khác biệt chỉ với, ví dụ, pho mát-Chris Banes ứng dụng, là tôi đang đưa ra app:layout_behavior đến một FrameLayout. Tuy nhiên, bên trong khung hình đó tôi tải các đoạn có một khung nhìn gốc là NestedScrollView và điều này có vẻ hoạt động tốt.

Trả lời

4

Tôi thấy dải màu xanh lam là nền của thanh công cụ. Cụ thể, tôi đã có:

<item name="toolbarStyle">@style/MyToolbarStyle</item> 

trong chủ đề của tôi, và:

<style name="MyToolbarStyle"> 
    <item name="android:background">?attr/colorPrimary</item> 
</style> 

Tôi đã từng có này để thanh công cụ màu với colorPrimary. Tuy nhiên, nếu bạn muốn di chuyển đến thư viện thiết kế, bạn nên thoát khỏi của nó: màu thanh công cụ thu gọn đã được quản lý bởi thuộc tính app:contentScrim trên CollapsingToolbarLayout.

+0

Tôi có cùng một vấn đề chính xác nơi xem hình ảnh của tôi là luôn bên dưới thanh công cụ. Tôi không chắc tôi hiểu cách bạn sửa lỗi này. – alextk

+0

Tôi đã xóa thuộc tính android: background của bất kỳ thanh công cụ nào, cả về kiểu và trong tệp bố cục. – natario

4

Tôi đã gặp sự cố tương tự, thanh công cụ thu gọn không bao phủ chiều cao đầy đủ của Hình ảnh, nhưng được cố định bằng cách xóa một dòng khỏi AppBarLayout. Đó là bạn chỉ cần loại bỏ android:fitsSystemWindows="true và bạn đã hoàn tất.

<android.support.design.widget.AppBarLayout 
     android:layout_height="@dimen/appbar_expanded_height" 
     android:layout_width="match_parent" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     android:fitsSystemWindows="true"> 

xóa dòng cuối cùng, tức là.

android:fitsSystemWindows="true" 

đó là nó, tốt để đi ...

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