0

J'essaye d'implémenter le comportement d'image d'en-tête Play Store, sans succès. J'ai pu faire défiler toute la page, mais seulement avec le ImageView à l'intérieur du CollapsingToolbarLayout. J'ai utilisé le code example at the announcement of Android Design Support library. Le code XML de l'activité à ce jour ressemble à ceci:Comment faire défiler du contenu sur une image?

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <android.support.design.widget.AppBarLayout 
    android:layout_height="192dp" 
    android:layout_width="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" 
    layout_width="wrap_content" layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <android.support.design.widget.CollapsingToolbarLayout 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" layout_width="wrap_content" 
     layout_height="wrap_content"> 
     <ImageView 

      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/imageView" android:layout_gravity="center_vertical" android:src="@android:mipmap/sym_def_app_icon"/> 
     <android.support.v7.widget.Toolbar 
      android:layout_height="?attr/actionBarSize" 
      android:layout_width="match_parent" 
      app:layout_collapseMode="pin" layout_width="wrap_content" layout_height="wrap_content"/> 

    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 
    <TextView android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="New Text" 
       android:id="@+id/textView" android:layout_gravity="center_vertical"/> 
</android.support.design.widget.CoordinatorLayout> 

Je suis assez sûr que quelque chose manque ici.

Répondre

1

Au lieu d'utiliser ScrollView, vous devez envelopper votre AppBarLayout dans un CoordinatorLayout.

Vous devrez également mettre app:layout_behavior="@string/appbar_scrolling_view_behavior" sur le ViewGroup immédiatement après le AppBarLayout qui est le contenu de la page principale.

Here's a layout from Chris Banes' cheesesquare sample app.

+0

J'ai remplacé le ScrollView. Dans quelle vue puis-je placer la propriété par - ci-dessous, vous voulez dire dans l'espace 2D (qui est aussi l'ordre du code en ce moment), ou dans l'imbrication? – Exec

+0

Réponse mise à jour. Placez-le dans la vue dont le contenu de la page se trouve sous la barre d'applications. Vérifiez la disposition de l'échantillon dans le lien, l'attribut est sur le 'NestedScrollView' qui est immédiatement après le' AppBarLayout'. –