CollapseToolbarLayout ImageView ist nicht scrollbar

Mit Cheesesquare – Android-Support-Bibliothek Beispiel ist es möglich, die Header ImageView scroll-fähig machen?

 <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="@dimen/detail_backdrop_height" 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="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="48dp" app:expandedTitleMarginEnd="64dp"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll" app:layout_collapseMode="parallax" /> ... </android.support.design.widget.CollapsingToolbarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> .... 

Beachten Sie, dass ich hinzugefügt hinzugefügt android:fillViewport="true" zu NestedScrollView und auch hinzugefügt app:layout_scrollFlags="scroll" um die ImageView aber beim Versuch, aus dem ImageView nichts passiert.

  • Bei der Verwendung der Symbolleiste kann der Aktionsmodus nicht gestartet werden
  • RecyclerView respektiert keine Übersetzung beim Recycling von Ansichten
  • Renderscript über die Unterstützungsbibliothek
  • Loader: onLoadFinished nur einmal genannt
  • Initialisieren von AppCompat 22.1.1 Dialog colorAccent vom App-Design funktioniert nicht
  • Ändern der TabLayout-Symbole links, oben, rechts oder unten in com.android.support:design:23.1.0
  • Das Symbol 'AndroidJUnit4' kann nicht aufgelöst werden
  • Android CollapsingToolbarLayout mit benutzerdefinierter Ansicht
  • 3 Solutions collect form web for “CollapseToolbarLayout ImageView ist nicht scrollbar”

    OK, ich habe einige Recherchen in den Fehlerberichten gemacht, und das ist ein bekannter Fehler in der Design Support Library .

    Schau dir den Fehlerbericht an

    Auszug

    Ich habe einen Blick auf die Implementierung, die CoordinatorLayout / AppBarLayout / die Behavior etc. unterstützt. Das AppBarLayout verwendet das Verhalten, das in AppBarLayout.Behavior standardmäßig definiert ist. Dies erweitert das ViewOffsetBehavior das wiederum das Behavior . Die Basis- Behavior Klasse hat die Methoden onInterceptTouchEvent() und onTouchEvent() , die beide false zurückgeben (dh "wir wollen keine Touch-Events behandeln"). Diese Methoden werden weder durch ViewOffsetBehavior noch durch AppBarLayout.Behavior außer Kraft AppBarLayout.Behavior , was bedeutet, dass die Berührung unbehandelt bleibt – weshalb es nichts tut.

    Ein möglicher Workaround für Drittanbieter wäre es, AppBarLayout.Behavior zu erweitern und onInterceptTouchEvent() und onTouchEvent() implementieren und die App-Leiste entsprechend zu manipulieren.

    Videos

    Diese zeigen das aktuelle und beabsichtigte Verhalten. Diese sind auch aus dem Fehlerbericht.

    Ich habe einen Workaround gefunden, indem ich die imageView in eine NestedScrollView einbinde:

      <android.support.design.widget.AppBarLayout android:layout_height="wrap_content" android:id="@+id/appbar" android:background="@color/transparent" android:layout_width="match_parent"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/transparent" app:toolbarId="@+id/toolbar" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_collapseMode="parallax" app:layout_scrollFlags="scroll" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <ImageView tools:ignore="UnusedAttribute" tools:src="@drawable/placeholder" android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:adjustViewBounds="true" android:scaleType="centerCrop" android:minHeight="200dp"/> </android.support.v4.widget.NestedScrollView> <android.support.v7.widget.Toolbar android:layout_height="?attr/actionBarSize" android:id="@+id/toolbar" android:elevation="0dp" android:layout_width="match_parent" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> 

    Aber ich habe es nicht in Prod getestet, als ich ein anderes Problem mit der Fling-to-Top-Geste traf, die unterbrochen wird, wenn der Recyclerview die Spitze erreicht (wie im Bug Report erklärt).

    Von der Prüfung dieser auf der Unterstützungsbibliothek 23.1.1 scheint dieses Problem behoben zu sein.

     compile 'com.android.support:design:23.1.1' 

    Sie können jetzt in Ihre CollapsingToolbarLayout alles, ImageView, RelativeLayout, TextView und es wird wie gewünscht scrollen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.