0

因此,我有一个浮动操作按钮,它固定在底部表单布局上。然后,我单击一个按钮,将底部工作表的状态设置为STATE_HIDDEN。底部纸张正确隐藏并弹出小吃棒,浮动式按钮相应地上升。问题出在Snackbar关闭并且浮动操作按钮回落后:当我将底部工作表的状态设置回STATE_COLLAPSED时,浮动操作按钮需要一秒钟或2秒钟重新调整并锚定回底部工作表(上一次截图) 。我如何消除延迟?谢谢:)问题的Android底部表单与浮动操作按键与小吃店问题

图片

enter image description here

代码按钮:

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(); 

代码布局

<?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> 

回答

3

嗨,我有完全相同的问题和两个建议:

选项A:让小吃店从顶部下方工具栏下浮动。看到这个答案在这里: https://stackoverflow.com/a/31746370/5320905

选项B:加大小吃吧的高程,并显示在FAB的顶部像这样

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);