Подтвердить что ты не робот

КоординаторLayout с двумя кнопками с плавающим действием

У меня есть два Fab, расположенных внутри представления CoordinateLayout. Когда я показываю Snackbar, я ожидаю, что оба Fabs перейдут все вместе, но результат в том, что только один из Fab (нижний) отвечает и поднимается (см. Рисунок). что мне здесь не хватает?

berfore введите описание изображения здесь после введите описание изображения здесь

Вызов закусочной

 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>
4b9b3361

Ответ 1

В соответствии с fab 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) и bottom fab (action_button_filter), так что первый всегда остается поверх другого, как определено с помощью layout_anchorGravity и layout_gravity атрибут, оба установлены на top. Возможно, вам придется переопределить свои поля.