5

У меня есть некоторые проблемы, пытающиеся реализовать новый CollapsingToolbarLayout. Прокрутка, расширение и свертывание действительно работают нормально, но мой ImageView (независимо от того, какой тип ресурса я установил) не покрывает всю высоту развернутой панели инструментов. Смотрите здесь:ImageView в CollapsingToolbarLayout не покрывает всю высоту?

expanded collapsed

Здесь я установил android:src="@color/red" на представлении изображения, но он никогда не покрывает реальную панель инструментов. Он также не работает с растровыми изображениями. Я размещаю свой макет ниже.

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

Кажется мне, что единственное отличие, например, сыр-Крис Бэйнс-приложение, является то, что я даю app:layout_behavior к FrameLayout. Однако внутри этого фрейма я загружаю фрагменты с NestedScrollView в качестве корневого представления, и это, похоже, работает нормально.

ответ

4

Я нашел, что синяя полоса была фоном панели инструментов. А именно, у меня было:

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

в моей теме, а также:

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

Я использовал, чтобы иметь это оттеночные панелей инструментов с colorPrimary. Однако, если вы хотите переместиться в библиотеку дизайна, вы должны избавиться от: сведенный цвет панели инструментов уже управляется атрибутом app:contentScrim на CollapsingToolbarLayout.

+0

У меня точно такой же вопрос, где мой взгляд изображение всегда ниже панели инструментов. Я не уверен, что понимаю, как вы это исправили. – alextk

+0

Я удалил любой андроид на панели инструментов: фоновый атрибут, как в стилях, так и в файле макета. – natario

4

У меня была та же проблема, рушащая панель инструментов не покрывала всю высоту изображения, но исправлена ​​с удалением одной строки из AppBarLayout. Это вам просто нужно удалить android:fitsSystemWindows="true, и все готово.

<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:fitsSystemWindows="true" 

это все, хорошо идти ...

Смежные вопросы