0

J'ai donc un bouton d'action flottant qui est ancré à une disposition de feuille de fond. Je clique ensuite sur un bouton qui définit l'état de la feuille inférieure sur STATE_HIDDEN. La feuille inférieure se cache correctement et un casse-croûte apparaît, le bouton d'action flottante augmente en conséquence. Le problème survient après la fermeture du Snackbar et le retour du Floating Action Button: lorsque je remets l'état de la feuille inférieure à STATE_COLLAPSED, le Floating Action Button prend une seconde ou 2 pour réajuster et ancrer sur la feuille du bas (dernière capture d'écran) . Comment puis-je supprimer le délai? Merci :)Feuille de fond Android avec bouton d'action flottant avec Snackbar Issue

Images d'émission

enter image description here

code pour le bouton:

mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); 

    final Snackbar mySnackbar 
      = Snackbar.make(findViewById(R.id.bottom_sheet_page), 
      R.string.map_undoremove, Snackbar.LENGTH_LONG); 
    mySnackbar.setAction(R.string.undo_string, new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      mWaypoint = mMap.addMarker(new MarkerOptions().position(mWaypoint.getPosition()) 
        .title("Test")); 
     } 
    }); 

    mySnackbar.show(); 

code pour la mise en page

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
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:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/bottom_sheet_page" 
tools:context=".Map.MapNavDrawer" > 

<!-- Your content --> 
<include layout="@layout/activity_maps" /> 

<!-- Bottom Sheet --> 

<LinearLayout 
    android:clickable="true" 
    android:id="@+id/bottom_sheet" 
    android:layout_width="match_parent" 
    android:layout_height="250dp" 
    android:background="#FFFFFF" 
    android:orientation="vertical" 
    android:padding="16dp" 
    app:behavior_hideable="true" 
    app:layout_behavior="@string/bottom_sheet_behavior"> 

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

     <TextView 
      android:id="@+id/textViewWaypoint" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/map_waypointtitle" 
      android:textStyle="bold" 
      android:textColor="@android:color/black" /> 

     <TextView 
      android:id="@+id/textViewLocName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="" 
      android:textStyle="italic" 
      android:textColor="@android:color/black" /> 

     <TextView 
      android:id="@+id/textViewLocDetails" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="" 
      android:textColor="@android:color/black" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="bottom|end" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/button2" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="100dp" 
      android:layout_weight="1" 
      android:drawableTop="@drawable/ic_edit_black_24dp" 
      android:onClick="selectPlace" 
      android:text="@string/map_editwaypoint" /> 

     <Button 
      android:id="@+id/button3" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="100dp" 
      android:layout_weight="1" 
      android:drawableTop="@drawable/ic_delete_black_24dp" 
      android:onClick="deleteWaypoint" 
      android:text="@string/map_removewaypoint" /> 

     <Button 
      android:id="@+id/button4" 
      android:layout_width="0dp" 
      android:layout_height="100dp" 
      android:layout_weight="1" 
      android:text="@string/map_sharewaypoint" 
      android:drawableTop="@drawable/ic_menu_share" 
      style="?android:attr/buttonBarButtonStyle"/> 

    </LinearLayout> 

</LinearLayout> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@drawable/map_marker_radius" 
    android:tint="@android:color/white" 
    app:layout_anchor="@id/bottom_sheet" 
    app:layout_anchorGravity="top|end" 
    tools:ignore="VectorDrawableCompat" /> 


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

Répondre

3

Salut j'ai exactement le même problème et deux suggestions:

Option A: laissez le snackbar flottant par le haut ci-dessous barre d'outils. Voir cette réponse ici: https://stackoverflow.com/a/31746370/5320905

Option B: augmenter l'élévation du snack-bar et le montrer sur le dessus de FAB comme celui-ci

final Snackbar mySnackbar 
      = Snackbar.make(findViewById(R.id.bottom_sheet_page), 
      R.string.map_undoremove, Snackbar.LENGTH_LONG); 
View snackbarView = mySnackbar.getView(); 
snackbarView.setElevation(30);