Координатор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>
Ответы
Ответ 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
. Возможно, вам придется переопределить свои поля.