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