2016-05-16 18 views
0

Ich habe gesucht, aber es scheint, dass es kein ähnliches Problem wie meines gibt.CollapsingToolbarLayout + Coordinatorlayout + ViewPager + Fragment

Ich habe einen ViewPager mit mehreren Fragmenten. Innerhalb jedes Fragments gibt es einen Kopfteil, den ich möchte, dass er kollabiert (pallax), wenn der untere Teil gescrollt wird (normalerweise ein RecylcerView). Der Collapsing-Part ist ein weiteres Fragment (also kann ich es an mehreren Stellen wiederverwenden).

Das erste Fragment (im ViewPager), das dieses Layout hat, funktioniert gut (Bild A). Die anderen haben jedoch ein Problem wie das Bild B. Wenn Sie die Reihenfolge der Fragmente innerhalb von ViewPager ändern, zum Beispiel B nach erster, A nach zweiter, dann wird A das Problem bekommen, B wird gut funktionieren.

A arbeitet gut (A ist das erste Fragment in ViewPager) Pic A

B lappenden Ausgabe hat. Es gibt einen Platz an der Spitze, die unten durch die Liste unter Pic B

Wenn nach oben die reclyclerview unten überlappt wird, wird der obere Teil kollabieren nicht vollständig

Hier ist das Layout, die beide A & B verwenden die gleiche Layout

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

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

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_collapseMode="parallax" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> 

      <fragment 
       android:id="@+id/fragment_test" 
       android:name="com.sample.android.fragment.FragmentTest" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/test_height" 
       android:fitsSystemWindows="true" 
       app:layout_collapseMode="parallax" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <include 
     layout="@layout/layout_list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/tv_emtpy" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 
  • layout_list enthält nur eine RecyclerView

Ps: Ich habe mehrere Möglichkeiten ausprobiert: - android: fitsSystemWindows für AppBarLayout, CoordinatorLayout ... - Setzen Sie die Liste in AppBarLayout

Antwort

0

ich irgendwie gleichen Problem konfrontiert; Fehler beim Koordinatenlayout. Probieren Sie diese Bibliothek aus, eine Beispiel-App gibt es auch auf playStore.

https://github.com/henrytao-me/smooth-app-bar-layout 

Sie müssen den viewPager und Adapter auch ändern, denke ich; Die Integration sollte jedoch nicht lange dauern. Zuerst gehen Sie durch Beispiel-App auf Play Store und herauszufinden, ob es Ihnen etwas Gutes oder nicht tun wird.

https://play.google.com/store/apps/details?id=me.henrytao.smoothappbarlayout 
+0

Danke für die Empfehlung. Ich werde es versuchen, obwohl es scheint, keine der Optionen ist ähnlich zu meinem Design (kollabierenden Bereich innerhalb des Fragments einer Ansicht Pager und ist ein Fragment selbst) –

+0

FYI: Die Bibliothek hilft nicht, das Problem zu lösen. Tatsächlich verursacht es ein weiteres Flackern, wenn das Layout hochgescrollt wird. Ich denke, ich muss eine andere Strategie für dieses Layout verwenden. Danke für den Vorschlag –

Verwandte Themen