5

Mam przycisk FAB w wersji Coordinator Layout i ustawiono bufory podręczne, aby pojawiły się w Coordinator Layout. Jednakże, jeśli pasek zakąsek jest widoczny i wykonuję akcję, która uruchamia kolejny pasek z przekąskami, podczas gdy pierwszy jest nadal widoczny, przycisk FAB załamuje się i spada za paskiem z przekąskami. Zamiast poruszać się z snackbar.Błąd paska nawigacyjnego i FloatingActionButton

Mam Coordinator Layout w ramach Relative Layout, ale z adview poniżej Coordinator Layout.

To layout.xml

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/drawer" 

android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/background"> 

<RelativeLayout 
    android:id="@+id/circle2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/container2" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/adView" 
     android:background="#FFF3E0" 
     tools:context=".MainActivity" 
     android:orientation="vertical"> 

     <SurfaceView 
      android:layout_width="0px" 
      android:layout_height="0px" 
      android:visibility="gone" /> 
     <include 
      android:id="@+id/circle" 
      layout="@layout/periodictablelayout" /> 


     <include 
      android:id="@+id/toolbar_actionbar" 
      layout="@layout/toolbar_default" 

      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 


     <FrameLayout 
      android:id="@+id/container" 
      android:layout_width="fill_parent" 

      android:layout_height="fill_parent" 
      android:layout_marginTop="?android:attr/actionBarSize" 

      /> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/periodbutton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="16dp" 
      android:layout_marginEnd="16dp" 
      android:elevation="3dp" 
      android:onClick="onClick" 
      app:layout_anchorGravity="bottom|right|end" 
      app:layout_anchor="@+id/container2" 
      android:src="@drawable/ic_view_comfy_white_24dp" 
      app:backgroundTint="@color/accent" 
      android:layout_gravity="bottom|end" 
      app:layout_behavior="ibochemistry.titomo.timetoolay.google.com.ibchemistry.ScrollAwareFABBehaviour" /> 


    </android.support.design.widget.CoordinatorLayout> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id" 
     app:layout_anchorGravity="bottom" /> 
</RelativeLayout> 
<!-- android:layout_marginTop="?android:attr/actionBarSize"--> 
<fragment 
    android:id="@+id/fragment_drawer" 
    android:name="ibo.NavigationDrawerFragment" 
    android:layout_width="@dimen/navigation_drawer_width" 
    android:layout_height="wrap_content" 
    android:layout_gravity="start" 
    android:layout_marginTop="@dimen/abc_action_bar_default_height_material" 
    app:layout="@layout/fragment_navigation_drawer" 

    tools:layout="@layout/fragment_navigation_drawer" /> 

+0

szczęście? Sam mam ten sam błąd. – EviatarS

Odpowiedz

2

Jak o przeprowadzce fab z bistrem. Myślę, że to rozwiąże twój problem. Ilekroć bistrem pokazano to zrobić,

SnackbarManager.show(
Snackbar.with(getApplicationContext()) // context 
    .text("This will do something when dismissed") // text to display 
    .eventListener(new EventListener() { 
     @Override 
     public void onShow(Snackbar snackbar) { 
      myFloatingActionButton.moveUp(snackbar.getHeight()); 
     } 
     @Override 
     public void onShown(Snackbar snackbar) { 
      Log.i(TAG, String.format("Snackbar shown. Width: %d Height: %d Offset: %d", 
        snackbar.getWidth(), snackbar.getHeight(), 
        snackbar.getOffset())); 
     } 
     @Override 
     public void onDismiss(Snackbar snackbar) { 
      myFloatingActionButton.moveDown(snackbar.getHeight()); 
     } 
     @Override 
     public void onDismissed(Snackbar snackbar) { 
      Log.i(TAG, String.format("Snackbar dismissed. Width: %d Height: %d Offset: %d", 
           snackbar.getWidth(), snackbar.getHeight(), 
           snackbar.getOffset())); 
     } 
    }) // Snackbar's EventListener 
, this); // activity where it is displayed 

Daj mi znać, jeśli działa dla Ciebie ...

+0

To tylko animacja niezależnie od paska z przekąskami. Co się stanie, gdy snackbar zniknie? Będę musiał przywrócić go do pierwotnej pozycji. To nie będzie wyglądało dobrze, gdy stare urządzenie zakłóci animację, a pasek zakrywania zachodzi na FAB lub FAB, zanim pojawi się pasek zakąsek. – overhound

+0

Możesz je przywrócić w jednej linii, jak powyżej ... Ale czy chcesz animować widok, czy nie? Sprawdź moją zmienioną odpowiedź ... –

0

użytkowania tutaj widok - fabView

Snackbar.make(view, "Hello Snackbar", Snackbar.LENGTH_LONG).show(); 

to pokaże fab powyżej snackbar

0

Ten problem został naprawiony w wersji 23.1.0, po prostu zaktualizuj swoje zależności i to naprawi.

Powiązane problemy