7

我試圖用futuresimple's FloatingActionButton library使用FloatingActionMenuCoordinatorLayout所以當我顯示Snackbar的FAB將向上移動,而不是由Snackbar隱藏。 FloatingActionMenu工作正常,雖然我注意到第三方庫不在CoordinatorLayout內工作。第三方FloatingActionButton圖書館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(); 

回答

8

究其原因,小吃吧被覆蓋在FloatingActionMenu是因爲你設置的是作爲小吃吧的觀點:

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();