2015-10-12 1 views
1

J'utilise un CoordinatorLayout pour garder mon bouton d'action flottant au-dessus de la Snackbar, ce qui fonctionne très bien. ... Mais seulement pour le premier Snackbar. Quand un second est créé, alors que le premier est toujours là, le FAB glisse sous lui. Je l'utilise dans un RecyclerView dans lequel je peux retirer des objets. Lorsqu'un élément est supprimé, une barre Snackbar "Annuler" s'affiche. Ainsi, lorsque vous supprimez certains éléments les uns après les autres, le Snackbar visible est remplacé par un nouveau (qui provoque le comportement FAB)Floating Action Bouton diasappears sous SECOND Snackbar

Connaissez-vous une solution pour garder le FAB au-dessus des nouvelles Snackbars?

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:fab="http://schemas.android.com/tools" 
    android:id="@+id/coordinator_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:backgroundTint="@color/background_grey" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <include 
      android:id="@+id/toolbar" 
      layout="@layout/toolbar" /> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recyclerView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scrollbars="vertical" /> 

    </LinearLayout> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_marginBottom="16dp" 
      android:layout_marginEnd="16dp" 
      android:layout_marginRight="16dp" 
      android:elevation="6dp" 
      android:src="@drawable/ic_add_white_36dp" 
      app:borderWidth="0dp" 
      app:fabSize="normal" 
      app:pressedTranslationZ="10dp" 
      app:rippleColor="@color/abc_primary_text_material_dark" /> 

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

C'est à quoi il ressemble après que je supprimer sur le point

enter image description here

... et puis après je supprimer un autre élément

enter image description here

+0

Vous souhaitez ajouter à la CoordinatorLayout Snack-bar. http://stackoverflow.com/a/32777587/2444099 –

+0

Copie possible de [Déplacer le bouton d'action flottant de haut en bas pour éviter d'être bloqué par un casse-croûte] (http://stackoverflow.com/questions/27912656/moving-floating- action-button-up-and-down-to-éviter-getting-bloqué-par-un-snack) –

+0

Désolé, mais cela n'a pas fonctionné. Même numéro – Eyntschl

Répondre

0

Cela se produira toujours, comme snackbar est une couche au-dessus de la vue .. snackbar empilés ne devrait pas être utilisé dans ce scénario Voir google gidelines .. https://www.google.co.in/design/spec/components/snackbars-toasts.html#snackbars-toasts-usage

Au contraire, vous la mise en œuvre devrait être quelque chose comme https://github.com/jenzz/Android-UndoBar

Toutes mes excuses pour le changement ur conception

+0

Merci. Mes Snackbars ne sont pas empilés. Quand un est affiché et que j'enlève un autre élément du RecyclerView, le nouveau Snackbar remplace l'ancien. Il ne ressemble PAS à la capture d'écran 4 des consignes de conception Google. Mais le Snackbar (avec une action) n'est-il pas exactement ce qui est nécessaire dans ce scénario? Tout comme faire glisser Google Now Cartes – Eyntschl

+0

J'ai attaché quelques captures d'écran à l'ouverture – Eyntschl

+1

Sa responsabilité de coordonner la mise en page pour gérer cela, chaque barre de temps apparaître, mais dans ce cas, il y a un bug .. Une chose qui est importante pour notez que CoordinatorLayout n'a pas de compréhension innée d'un travail FloatingActionButton ou AppBarLayout - il fournit juste une API supplémentaire sous la forme d'un Coordinator.Behavior, qui permet aux vues enfants de mieux contrôler les événements tactiles et les gestes, ainsi que de déclarer les dépendances entre l'autre et recevoir des rappels via onDependentViewChanged(). U besoin de jouer avec ces 2 méthodes .. –