簡體   English   中英

Android底部工作表,帶有帶有Snackbar問題的浮動操作按鈕

[英]Android Bottom Sheet with Floating Action Button with Snackbar Issue

因此,我有一個浮動操作按鈕,該按鈕固定在底部工作表布局上。 然后,我單擊一個按鈕,將“底表”的狀態設置為STATE_HIDDEN。 底頁正確隱藏,然后彈出一個快餐欄,“浮動操作按鈕”隨之升高。 問題是在Snackbar關閉並且Floating Action Button重新下沉后:當我將底部工作表的狀態設置回STATE_COLLAPSED時,Floating Action Button需要一秒鍾或2秒鍾重新調整並錨定在底部工作表上(最后一張屏幕截圖) 。 如何消除延遲? 謝謝 :)

發行圖片

在此處輸入圖片說明

按鈕的代碼:

    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>

嗨,我有完全一樣的問題和兩個建議:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM