CoordinatorLayout中的第三方FloatingActionButton库

我正在尝试使用futuresimple的FloatingActionButton库在CoordinatorLayout使用FloatingActionMenu因此当我显示一个Snackbar ,FAB将向上移动,而不会被Snackbar隐藏。 FloatingActionMenu工作正常,虽然我注意到第三方库不在CoordinatorLayout内工作。

当我使用来自Google的支持库FAB时, CoordinatorLayout按照预期工作,虽然FutureSimple的库不是。 (它被Snackbar隐藏)。

我如何使第三方库与CoordinatorLayout工作?

fragment_comic.xml

 <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:text="@string/default_title" android:textAppearance="?android:textAppearanceLarge" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/alt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/title" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:fadeScrollbars="false" android:gravity="center" android:maxLines="4" android:textColor="@color/black" android:paddingBottom="13dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scrollbars="vertical" android:text="@string/default_alt" android:textAppearance="?android:textAppearanceMedium" /> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/alt" android:adjustViewBounds="false" android:layout_marginBottom="10dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scaleType="fitCenter" /> </RelativeLayout> <com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/famMain" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_addButtonColorNormal="@color/material_orange" fab:fab_addButtonSize="normal" fab:fab_addButtonStrokeVisible="true" fab:fab_expandDirection="up" android:layout_gravity="bottom|end"> <com.getbase.floatingactionbutton.FloatingActionButton android:id="@+id/fab_random" android:src="@drawable/ic_random" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_colorNormal="@color/material_orange" fab:fab_size="mini"/> <com.getbase.floatingactionbutton.FloatingActionButton android:id="@+id/fab_download" android:src="@drawable/ic_download" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_colorNormal="@color/material_orange" fab:fab_size="mini"/> <com.getbase.floatingactionbutton.FloatingActionButton android:id="@+id/fab_browser" android:src="@drawable/ic_open_browser" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_colorNormal="@color/material_orange" fab:fab_size="mini"/> </com.getbase.floatingactionbutton.FloatingActionsMenu> 

然后在我的Java类,我启动我的FloatingActionsMenu

 FloatingActionsMenu famView = (FloatingActionsMenu) getActivity().findViewById(R.id.famMain); 

然后我把它放到我的小吃店

 Snackbar.make(famView, "Hover text copied to clipboard", Snackbar.LENGTH_SHORT).show(); 

Snackbar覆盖FloatingActionMenu的原因是因为您将其设置为Snackbar的视图:

 Snackbar.make(famView, "Hover text copied to clipboard", Snackbar.LENGTH_SHORT).show(); 

你真正需要做的是在布局的底部添加一个CoordinatorLayout来显示Snackbar。 您可以将其设置为LinearLayout方式,以使其显示在其他所有内容之下。 这是您的XML的编辑版本:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.CoordinatorLayout xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinatorLayout" android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="1"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:text="Test" android:textAppearance="?android:textAppearanceLarge" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/alt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/title" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:fadeScrollbars="false" android:gravity="center" android:maxLines="4" android:textColor="@android:color/black" android:paddingBottom="13dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scrollbars="vertical" android:text="Test Alt" android:textAppearance="?android:textAppearanceMedium" /> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/alt" android:adjustViewBounds="false" android:layout_marginBottom="10dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scaleType="fitCenter" /> </RelativeLayout> <com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/famMain" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_addButtonColorNormal="@android:color/black" fab:fab_addButtonSize="normal" fab:fab_addButtonStrokeVisible="true" fab:fab_expandDirection="up" android:layout_gravity="bottom|end"> <com.getbase.floatingactionbutton.FloatingActionButton android:id="@+id/fab_random" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_colorNormal="@android:color/black" fab:fab_size="mini"/> <com.getbase.floatingactionbutton.FloatingActionButton android:id="@+id/fab_download" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_colorNormal="@android:color/black" fab:fab_size="mini"/> <com.getbase.floatingactionbutton.FloatingActionButton android:id="@+id/fab_browser" android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_colorNormal="@android:color/black" fab:fab_size="mini"/> </com.getbase.floatingactionbutton.FloatingActionsMenu> <android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/testFAB" android:layout_gravity="bottom|start"/> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.CoordinatorLayout android:id="@+id/snackbar" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> 

然后,你可以得到这样的小吃吧:

 CoordinatorLayout snackbar = (CoordinatorLayout) findViewById(R.id.snackbar); 

这样做:

 Snackbar.make(snackbar, "Hover text copied to clipboard", Snackbar.LENGTH_SHORT).show();