0

J'ai une mise en page XML comme ceci:Collapsing l'image d'en-tête avec le défilement du recyclerview

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="realup.ir.teacher.MainActivity"> 

<android.support.design.widget.CoordinatorLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/header"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/app_bar_head"> 
     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:id="@+id/collapse_toolbar"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:adjustViewBounds="true" 
       android:scaleType="centerCrop" 
       android:src="@drawable/realup" 
       android:id="@+id/header_image"/> 


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

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

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



<android.support.v7.widget.RecyclerView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/recycle" 
    android:layout_below="@+id/header"/> 

</RelativeLayout> 

Comme vous pouvez le voir, j'ai une recyclerview et je veux quand le recyclerview est défilement vers le bas, la vue d'image être effondré avec défilement du recyclerview. Pouvez-vous m'aider? Merci d'avance :)

Répondre

0

Votre RecyclerView devrait être dans le Coordinatorlayout pour réaliser l'animation et d'utiliser un NestedScrollView comme parent pour votre RecyclerView:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="realup.ir.teacher.MainActivity"> 

<android.support.design.widget.CoordinatorLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/header"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/app_bar_head"> 
     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:id="@+id/collapse_toolbar"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:adjustViewBounds="true" 
       android:scaleType="centerCrop" 
       android:src="@drawable/realup" 
       android:id="@+id/header_image"/> 


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

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

    <android.support.v4.widget.NestedScrollView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

     <android.support.v7.widget.RecyclerView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/recycle"/> 

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

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

Pour obtenir un effet de défilement lisse ajouter dans votre code:

RecyclerView recyclerView = (RecyclerView)findViewById(R.id.recycle); 
recyclerView.setNestedScrollingEnabled(false); 

Hope this helps.

Désolé pour mon anglais.

+0

Merci vous, développeur;) –

+0

Vous êtes les bienvenus :) Vous pouvez supprimer la disposition relative si vous n'avez pas besoin – Cochi

0

Prenez CoordinatorLayout comme une mise en page parente et RecyclerView dans FrameLayout;

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/coordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:background="#e7e5e5" 
     android:layout_marginLeft="-20dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.design.widget.CollapsingToolbarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_scrollFlags="scroll|enterAlways" 
     android:id="@+id/collapse_toolbar"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="true" 
      android:scaleType="centerCrop" 
      android:src="@drawable/realup" 
      android:id="@+id/header_image"/> 


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

    <FrameLayout 
     android:id="@+id/dashboard_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/task_list" 
      android:scrollbars="vertical" 
      android:paddingBottom="85dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:layout_marginTop="10dp" 
      android:clipToPadding="false" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

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

     </FrameLayout> 
</android.support.design.widget.CoordinatorLayout> 
+0

vous dire, je supprimer la disposition relative en tant que parent pour l'ensemble de l'écran? –

+0

Commentaire l'ensemble de votre xml et de mettre cela et vérifier ce qui se passe –

+0

mettre votre propre id recyclerview xml –