2016-09-10 2 views
5

Ich habe ein kollabierbaresToolBar Layout.Das Bild in der Tolbar kollabiert und gleitet, aber die Elemente in Recycler Ansicht sind nicht kollabiert, sie bleiben an ihrer Position only.Ich will themto nach oben bewegen und zusammenbrechen.Zusammenklappbare Symbolleiste nicht richtig zusammenfalten, wenn Recycler in ihm anzeigen

<android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:animateLayoutChanges="true" 
     > 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/collapps_bar" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      > 
      <View 
       android:id="@+id/image" 
       android:layout_width="fill_parent" 
       android:layout_height="200dp" 
       app:layout_collapseMode="parallax" 
       android:background="@android:color/transparent" 
       /> 
      <include layout="@layout/toolbar" /> 
      <android.support.v7.widget.RecyclerView 
       android:layout_width="match_parent" 
       android:id="@+id/recyClerView" 
       app:layout_collapseMode="parallax" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100dp" 
       android:orientation="horizontal" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 

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

Hallo Stack Learner, hast du die Antwort finden? Wenn nicht, ist es richtig, was ich gesagt habe? Vielen Dank! – Jaco

Antwort

0

Ich weiß nicht, ob Sie das geschafft haben, aber ich werde Ihnen vorschlagen, was zu tun ist, wenn Sie es nicht getan haben.

Erstens ändern sich die fill_parent-match_parent weil fill_parent veraltet aus API-Ebene starten 8.

As Nikoloz Akhvlediani said on his answer, können Sie die Methode verwenden, um addOnItemTouchListener Ihre Recycler Ansicht mit recyClerView und dann zu onInterceptTouchEvent rufen Sie die Touch-Ereignisse zu erhalten und requestDisallowInterceptTouchEvent, um die Berührungsereignisse aus der Recycleransicht zu verbieten und das gewünschte Scrollen zu erhalten.

Zum Beispiel auf onCreate() Methode, könnten Sie diesen Code

recyClerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { // Listen to all actions 
     @Override 
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
      int action = e.getAction(); 
      switch (action) { 
       case MotionEvent.ACTION_MOVE: // If you get some movement from a mouse, pen, finger or trackball 
        rv.getParent().requestDisallowInterceptTouchEvent(true); 
        break; 
      } 
      return false; 
     } 

     @Override 
     public void onTouchEvent(RecyclerView rv, MotionEvent e) { 

     } 

     @Override 
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

     } 
    }); 

Hoffnung hinzufügen, das hilft :)

Verwandte Themen