11

我有兩個Fabs位於CoordinateLayout視圖內。當我展示一個Snackbar時,我預計這兩個Fabs會一起上漲,但結果是隻有一個Fab(下一個)響應並上漲(見圖片)。我在這裏錯過什麼?CoordinatorLayout具有兩個浮動動作按鈕

berfore enter image description hereenter image description here

調用小吃店

mSnackbar = Snackbar.make(getActivity().findViewById(R.id.coords_wrapper), "Loading", 1000000000); 

XML

<android.support.design.widget.CoordinatorLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/coords_wrapper"> 

    <!-- main contents here, left out --> 
    <Relativelayout ...... /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/action_button_location" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src ="@drawable/ic_add_black" 
     android:layout_gravity="right|bottom" 
     android:layout_marginBottom="82dp" 
     android:layout_marginRight="16dp" 
     app:borderWidth="0dp" 
     app:elevation="6dp" 
     /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/action_button_filter" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src ="@drawable/ic_add_black" 
     android:layout_gravity="right|bottom" 
     android:layout_margin="16dp" 
     app:borderWidth="0dp" 
     app:elevation="6dp" 
     /> 
</android.support.design.widget.CoordinatorLayout> 

回答

15

按照晶圓廠的Behavior,其轉換隻有在它原本相交小吃吧。頂部按鈕顯然不會與小吃店相撞,因此沒有任何反應。

你可以嘗試定義一個錨:

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/action_button_location" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    app:layout_anchor="@id/action_button_filter" 
    app:layout_anchorGravity="top" 
    android:layout_gravity="top" 
    /> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/action_button_filter" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src ="@drawable/ic_add_black" 
    android:layout_gravity="right|bottom" 
    android:layout_margin="16dp" 
    /> 

這將決定頂部FAB(action_button_location)和底部FAB(action_button_filter)之間的關係,從而使第一始終停留在其他的頂部,如layout_anchorGravitylayout_gravity屬性所定義的,兩者都設置爲top。您可能需要重新定義您的利潤率。

+0

我認爲action_button_filter需要在action_button_location之前定義,以便能夠將其用作定位點。另外,我需要使用anchorGravity。並且包括layout_marginBottom =「82dp」(以避免讓他們相互接觸) –