0

Ich versuche, das Verhalten des CollapsingToolbarLayout-Elements in meiner Android-App zu optimieren.Ändern Sie den Speicherort, an dem CollapsingToolbar von Bild zu Hintergrundfarbe wechselt (Android-Entwicklung)

Mit der unten verlinkten Lösung habe ich eine zusammenklappbare Symbolleiste erstellt, die ein TabLayout und ein Hintergrundbild enthält, das verschwindet, wenn der Benutzer hochscrollt. Alles funktioniert wie erwartet, aber ich frage mich, ob ich die Position ändern kann, an der die CollapsingToolbar vom Bild zur Hintergrundfarbe wechselt.

Bei der Verwendung von Registerkarten erfolgt der Übergang von der Bild- zur Volltonhintergrundfarbe fast sofort beim Scrollen. Ohne Registerkarten tritt der Übergang der Symbolleiste erst auf, wenn die Symbolleiste fast vollständig ausgeblendet ist. Ich frage mich, ob es eine Möglichkeit gibt, den Übergang bei Verwendung von Tabs zu verzögern, damit es beim Scrollen nicht so schnell passiert.

Unten finden Sie den XML-Code für meine Symbolleisten- und Registerkartenlayouts sowie Screenshots des aktuellen und gewünschten Verhaltens.

Image: Current transition behavior (with tabs)

Image: Desired transition behavior (only achieved without using tabs)

<android.support.design.widget.AppBarLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:fitsSystemWindows="true" 
    > 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="235dp" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     app:contentScrim="?attr/colorPrimary" 
     android:fitsSystemWindows="true" 
     > 

     <ImageView 
      android:id="@+id/toolbar_image" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:scaleType="centerCrop" 
      android:fitsSystemWindows="true" 
      app:layout_collapseMode="parallax"/> 

     <View 
      android:id="@+id/toolbar_scrim" 
      android:layout_width="match_parent" 
      android:layout_height="200dp" 
      android:background="@drawable/scrim" 
      app:layout_collapseMode="pin" 
      android:fitsSystemWindows="true" 
      /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="104dp" 
      android:gravity="top" 
      android:minHeight="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:titleMarginTop="13dp" 
      > 

      <!-- app title --> 
      <android.support.v7.widget.AppCompatTextView 
       android:id="@+id/app_title" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="@string/app_name" 
       android:textColor="@color/md_white_1000" 
       android:textSize="20sp" 
       android:textStyle="bold" 
       android:paddingBottom="2.5dp" 
       android:gravity="top" 
       /> 

     </android.support.v7.widget.Toolbar> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_gravity="bottom" 
      app:tabIndicatorColor="@android:color/white" /> 

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

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

Einstürzen Symbolleiste mit Lösung Registerkarten: blog.grafixartist.com/parallax-scrolling-tabs-design-support-library/

Antwort

0

app:layout_collapseParallaxMultiplier="0.7" in Ihre ImageView

+0

Dies funktioniert nicht. :/Der Parallaxemultiplikator wirkt sich nur auf die Rate aus, mit der das Bild kollabiert, ändert jedoch nicht den Punkt, an dem die Symbolleiste vom Hintergrundbild in die Volltonfarbe übergeht. – micahmo