2017-04-20 3 views
0

J'ai une mise en page qui a une barre d'outils dans le haut, suivie par 2 barres de barre d'outils de taille en dessous et une liste ci-dessous. Lorsque quelqu'un défile sur la liste, les deux barres situées sous la barre d'outils doivent défiler vers le haut et disparaître sous la barre d'outils.Android CoordinatorLayout, Listview et barre d'outils fixe

J'ai essayé de mettre l'application: layout_scrollFlags = "scroll | enterAlways" uniquement sur ces barres et non sur la barre d'outils, mais elles ne répondent pas aux événements de défilement. Si je place également les mêmes scrollFlags dans la barre d'outils, ils répondent tous, mais je souhaite que la barre d'outils s'affiche en permanence. Si je déplace les deux barres au-dessus de la barre d'outils, cela fonctionne et seules les deux barres répondent, mais maintenant la barre d'outils est en dessous des barres et ce n'est pas l'affichage que je veux.

+0

Affichez votre code XML de mise en page pour obtenir une solution rapide. – FAT

Répondre

0

Essayez de placer la barre d'outils que vous souhaitez rester en haut de votre barre d'applications. Votre AppBar contient les vues que vous voulez réellement faire défiler, tandis que l'autre sera en dessous. Assurez-vous que votre barre d'application a une élévation de 0dp sinon elle ira et s'affichera au-dessus (ou changer l'élévation de votre barre d'outils pour qu'elle soit plus haute que la barre d'application). Ajoutez également la hauteur de la barre que vous souhaitez conserver en haut de la barre d'application afin qu'elle commence en dessous de votre vue.

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

    <!--Toolbars you want to move--> 
    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay" 
     android:layout_marginTop="?attr/actionBarSize" 
     app:elevation="0dp"> 

      <android.support.v7.widget.Toolbar 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@android:color/holo_blue_light" 
       android:layout_gravity="bottom" 
       app:layout_scrollFlags="scroll|enterAlways" 
       /> 

     <android.support.v7.widget.Toolbar 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@android:color/holo_orange_light" 
       android:layout_gravity="bottom" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:elevation="2dp" 
       /> 

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

    <!--Toolbar you don't want to move--> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_gravity="top" 
     android:background="@color/wallet_bright_foreground_holo_light" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     /> 

    <!--Your content here --> 
    <FrameLayout 
     android:id="@+id/frameLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
     <include layout="@layout/item_list" /> 
    </FrameLayout> 
</android.support.design.widget.CoordinatorLayout>