带有两个浮动操作按钮的 CoordinatorLayout
CoordinatorLayout with two floating action buttons
我有两个位于 CoordinateLayout 视图中的 Fab。当我展示 Snackbar 时,我希望两个 Fab 一起上升,但结果是只有一个 Fab(下面的那个)响应并上升(见图)。我在这里想念什么?
之前
在
之后
呼叫小吃店
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>
根据 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
) 和底部 fab (action_button_filter
) 之间的关系,以便第一个始终位于另一个之上,如 layout_anchorGravity
和 layout_gravity
属性,都设置为 top
。您可能需要重新定义边距。
我有两个位于 CoordinateLayout 视图中的 Fab。当我展示 Snackbar 时,我希望两个 Fab 一起上升,但结果是只有一个 Fab(下面的那个)响应并上升(见图)。我在这里想念什么?
之前
呼叫小吃店
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>
根据 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
) 和底部 fab (action_button_filter
) 之间的关系,以便第一个始终位于另一个之上,如 layout_anchorGravity
和 layout_gravity
属性,都设置为 top
。您可能需要重新定义边距。