Библиотека сторонних разработчиков FloatingActionButton в CoordinatorLayout

Я пытаюсь использовать библиотеку FloatingActionButton futuresimple для использования FloatingActionMenu внутри CoordinatorLayout поэтому, когда я показываю Snackbar FAB будет двигаться вверх, а не скрываться в Snackbar . FloatingActionMenu работает отлично, хотя я заметил, что сторонняя библиотека не работает внутри CoordinatorLayout .

Когда я использую библиотеку поддержки FAB из Google, 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(); 

Solutions Collecting From Web of "Библиотека сторонних разработчиков FloatingActionButton в CoordinatorLayout"

Причина, по которой 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();