2015-10-02 4 views
11

Sto utilizzando la libreria di supporto di progettazione Android per creare un'attività con una barra degli strumenti comprimibile con un buon effetto dissolvenza, proprio come Google Play o il profilo di contatto di Whatsapp. Metterò il layout dell'attività alla fine, ma tenete presente che questo è solo il layout di attività pieghevole predefinito a cui ho aggiunto un ImageView all'AppBarLayout per creare la barra degli strumenti < -> Effetto dissolvenza immagine.Android Collapsing Toolbar che non utilizza inerzia come l'app Google Play fa

Il mio problema con questa implementazione si presenta come 2 sintomi descriverò:

  • Il contenuto attività è lungo, quando voglio scorrere rapidamente con un colpo veloce la pergamena si fermerà prima di espandersi la barra degli strumenti . Voglio che continui, quando sono nella parte inferiore del mio NestedScrollView e faccio un rapido passaggio del dito per andare fino in cima alla mia attività Voglio che questo scorrimento vada e espandere la barra degli strumenti, questo è il modo in cui il L'app Google Play si comporta o il profilo di Whatsapp.

  • Analogamente quando la barra degli strumenti viene espansa non c'è inerzia allo scorrimento, un rapido scorrimento verso il basso scorrerà un piccolo bit, anche in questo caso non si verifica il comportamento di Google Play o Whatsapp. Una volta che la barra degli strumenti è compressa, la pergamena si comporta come sempre in ScrollView, ListView, ecc. Un passaggio rapido ti permetterà di andare in basso o in alto (a meno che non ci sia molto contenuto).

Il comportamento che descrivo è supportato dalla libreria di supporto di progettazione?

activity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".ScrollingActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:fitsSystemWindows="true" 
     android:layout_height="@dimen/app_bar_height_custom" 
     android:layout_width="match_parent" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

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

      <ImageView 
       android:src="@drawable/cuthbert" 
       app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax" 
       android:minHeight="100dp"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_width="match_parent" 
       app:layout_collapseMode="parallax" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_scrolling"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end" 
     android:src="@android:drawable/ic_dialog_email"/> 

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

content_scrolling.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView 
    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" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:showIn="@layout/activity_scrolling" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".ScrollingActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/text_margin" 
     android:text="@string/large_text"/> 

</android.support.v4.widget.NestedScrollView> 
+1

Quindi ora quando si scorre verso il basso, lo scorrimento si arresta (ritardi) nel momento in cui la barra degli strumenti è completamente nascosta e si ha bisogno di un'altra mossa per continuare a scorrere (lo stesso accade quando si scorre verso l'alto)? –

+0

Quando si scorre il comportamento è come descrivi. Scorrere verso il basso è diverso, perché lo scorrimento non è possibile con la barra degli strumenti estesa, nel momento in cui smetti di toccare lo schermo, smette di scorrere. La creazione di una nuova attività di scorrimento in Android Studio utilizzando il modello fornito ti fornirà esattamente questo comportamento che sto descrivendo. – dbar

+0

Trovato qualsiasi soluzione. Questo problema è stato segnalato ?? – Raghunandan

risposta

0

tenta di aggiungere queste linee in:

<android.support.design.widget.CollapsingToolbarLayout 
    app:expandedTitleMarginEnd="64dp" 
    app:expandedTitleMarginStart="48dp" 
    app:expandedTitleTextAppearance="@android:color/transparent" 
0

aggiornamento delle librerie di supporto per 26.0.0 (in particolare la progettazione biblioteca di supporto). Hanno finalmente risolto questo problema dopo anni di lamentele.

Problemi correlati