7

Próbuję użyć futuresimple's FloatingActionButton library używanie FloatingActionMenu Wewnątrz CoordinatorLayout więc kiedy wyświetli Snackbar fab przesunie się i nie zostać ukryte przez Snackbar. Model FloatingActionMenu działa doskonale, chociaż zauważyłem, że biblioteka innych firm nie działa wewnątrz CoordinatorLayout.Third Party FloatingActionButton Biblioteka w CoordinatorLayout

Kiedy używam biblioteki pomocniczej FAB z Google, CoordinatorLayout działa zgodnie z oczekiwaniami, chociaż biblioteka FutureSimple nie jest. (Jest ukrywany przez Snackbar).

Jak mogę sprawić, aby trzecia strona działała z biblioteką 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> 

następnie w mojej klasie Java zainicjować mój FloatingActionsMenu z

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

następnie ustawić go do mojego Snackbar z

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

Odpowiedz

8

Powodem bistrem jest nakładanie się FloatingActionMenu dlatego ustawiasz że jak widok dla bistrem:

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

Co naprawdę trzeba zrobić tutaj jest dodać CoordinatorLayout na dole układ, który będzie używany do wyświetlania paska Snackbar. Możesz ustawić to w stylu LinearLayout tak, aby pojawiało się pod wszystkim innym. Oto edytowany wersję swojej 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> 

Następnie można uzyskać pogląd bistrem takiego:

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

I zrobić to tak:

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