8

ho un'attività con il layout di:Come fissare la posizione di una vista all'interno di un ViewPager e CoordinatorLayout

<android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_height="56dp" 
       android:layout_width="match_parent" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:contentInsetLeft="0dp" 
       app:contentInsetStart="0dp" 
       app:layout_collapseMode="pin"/> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tabs" 
       android:layout_width="wrap_content" 
       app:tabIndicatorColor="@color/indicator" 
       app:tabMode="scrollable" 
       android:layout_height="wrap_content" /> 

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

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Il frammento caricata in ViewPager ha un layout di:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/refresh_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/gridView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingTop="10dp" 
      android:scrollbars="vertical" /> 

    </android.support.v4.widget.SwipeRefreshLayout> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/download_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="16dp" 
     android:layout_marginLeft="16dp" 
     android:src="@drawable/ic_btn_download" /> 

</RelativeLayout> 

Come posso correggere la posizione (evitare lo scorrimento) di FloatingActionButton all'interno del frammento (scorre con il suo genitore)?

Si noti che non è stato possibile spostare FloatingActionButton nel layout dell'attività.

+0

Perché non è possibile spostare FloatingActionButton sul layout dell'attività? –

risposta

3

È necessario utilizzare un layout FAB in attività. Se sono necessari colori o azioni diversi , è possibile definire FAB nel frammento e impostare il colore o l'azione per ciascun frammento.

8

È necessario spostare il pulsante di azione mobile dal proprio cercapersone di visualizzazione al layout del coordinatore. Da qui è possibile impostare la posizione di pulsante di azione galleggiante con

android:layout_gravity="end|bottom" 

o

app:layout_anchor="@id/yourViewToAnchor" 
app:layout_anchorGravity="bottom|right|end" 

E non dimenticate di mettere il vostro pulsante di azione che galleggia sulla più bassa del vostro coordinatore di layout XML per garantire che il galleggiante pulsante di azione nella parte superiore del layout.

+0

Ha funzionato per me. Grazie! – lalosoft

+0

Puoi spiegarmi come posso farlo funzionare? Non voglio spostare la mia vista dal frammento al layout dell'attività. Mi aiuti per favore. –

+0

@SagarPanwala Puoi rendere il tuo wrapper di frammenti un layout di coordinatore invece di un altro layout. Da lì, puoi impostare il tuo pulsante di azione mobile. – HendraWD

Problemi correlati