7

Es gibt ein Schema, das die Ansichtshierarchie meiner Anwendung beschreibt.Snackbar bewegt sich nicht FAB, das in Fragment platziert wurde

Example

Und einige XML

MainActivity

. CoordinatorLayout 
    . FrameLayout <- ContentFragment inserted here 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    . AppBarLayout 
    . Toolbar 

ContentFragment

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="56dp" 
     android:layout_height="56dp" 
     android:src="@drawable/ic_plus_white_36dp" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="15dp" 
     app:elevation="6dp" 
     app:pressedTranslationZ="12dp"/> 

    <TextView 
     android:id="@+id/hint_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="@string/empty_dates_list" 
     android:padding="20dp" 
     android:textSize="20sp" 
     android:layout_gravity="center" /> 

</FrameLayout> 

Mit diesem c ode I SnackBar machen:

Snackbar snackbar = Snackbar.make(
     mainActivity.getCoordinatorLayout(), 
     R.string.date_removed, 
     Snackbar.LENGTH_LONG); 

Mein Problem ist, dass fab nicht durch SnackBar nach oben bewegt ist, dass ich in ContentFragment machen

ich auch für Snackbar Punkt fab als Ansicht versucht, aber es nicht gebracht Ergebnisse hat.

+0

wickelt den Inhalt Framelayout zu sein mit einem CoordinatorLayout –

Antwort

4

Sie sollten CoordinatorLayout verwenden, um dieses Problem zu vermeiden, da CoordinatorLayout allein Layoutänderungen richtig koordiniert, die von seinen untergeordneten Ansichten verursacht werden.

Um Ihr Problem zu lösen, bewegen Sie einfach die FloatingActionButton aus dem Fragment-Layout in das MainActivity-Layout. Oder wenn Sie die FloatingActionButton im Fragmente verwenden mögen selbst, stellen Sie dann die übergeordnete Ansicht des Fragments ein CoordinatorLayout

+0

Gute Antwort. Jetzt habe ich 'FloatingActionButton' nach' MainActivity' verschoben und mache ein Getting dazu. Vielen Dank. – Alexandr

1

Damit dies funktioniert, sollte FloatingActionButton ein Kind von CoordinatorLayout sein. Ihr Kind ist ein Kind von FrameLayout.

+0

Und es gibt keinen Weg, um es zu zwingen, mit sub- zu arbeiten Ansichten? – Alexandr