FloatingActionButton aparece en pantalla cuando se utiliza TabLayout y ViewPager
Echa un vistazo a la FAB
continuación:
- Android ViewPager: Actualización de fragmentos fuera de la pantalla pero en caché en ViewPager
- Llame a actvity después de que el viewpager haya terminado
- ¿Cómo hace setOffscreenPageLimit () mejorar el rendimiento de ViewPager reteniendo más fragmentos fuera de pantalla?
- Android ViewPager con la pestaña que no mantiene el estado tras la rotación de la pantalla
- Objetos de comunicación entre fragmentos múltiples en ViewPager
No aparecerá a menos que colapse la Toolbar
. Aquí está mi XML:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:layout_alignParentStart="true" android:layout_below="@+id/toolbar" android:layout_marginTop="0dp" android:animateLayoutChanges="true" android:background="@android:color/white" android:layoutDirection="locale" android:orientation="vertical" android:padding="0dp"> <android.support.design.widget.CoordinatorLayout android:id="@+id/cLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="0dp" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@color/accent" android:src="@drawable/ic_add" app:layout_anchor="@id/list" app:layout_anchorGravity="bottom|end" /> </android.support.design.widget.CoordinatorLayout> </RelativeLayout>
¿Por qué sucede esto si no establezco ningún comportamiento para el FAB
? ¿Hay alguna propiedad que debería agregar a algo para poder evitar este comportamiento?
- Añadir / eliminar páginas a ViewPager dinámicamente
- Uso del botón backstack y back en viewpager
- ¿Cómo puedo añadir un fragmento a un ViewPager? AddView bloquea mi aplicación
- Actualizar el fragmento actual en FragmentPagerAdapter
- FragmentPagerAdapter no se puede resolver con un tipo
- Cómo reiniciar la imagen ampliada en la imagen original
- Filtrado ListView que forma parte de un fragmento de ViewPager
- Android, Cómo mezclar ActionBar.Tab + Ver Pager + ListFragment
Simplemente elimine su FloatingActionButton
de cada Fragment
y agréguelo a su Activity
. De esta manera no sólo el FAB se mantiene en su lugar sino que también soluciona su problema. A continuación, puede utilizar getActivity().findViewByIf(id)
en su Fragment
y establecer un onClickListener
en cada Fragment
.
Le sugiero que elimine su RelativeLayout y reestructure su diseño de esta manera:
<android.support.design.widget.CoordinatorLayout android:id="@+id/cLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="0dp" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@color/accent" android:src="@drawable/ic_add" app:layout_anchor="@id/list" app:layout_anchorGravity="bottom|end" /> <com.rey.material.widget.ProgressView android:id="@+id/progress_bar" android:layout_width="60dp" android:layout_height="60dp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" app:pv_autostart="true" app:pv_circular="true" app:pv_progressMode="indeterminate" app:pv_progressStyle="@style/Material.Drawable.CircularProgress" /> </android.support.design.widget.CoordinatorLayout>
El diseño del coordinador no se comporta como un diseño relativo, no puede tener varios hijos sin molestarse. Por lo que sólo tiene que hacer un hijo de la distribución del coordinador, es decir, el diseño relativo y dentro de él agregar recyclerView y floatingActionButton
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="0dp" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@color/accent" android:src="@drawable/ic_add" app:layout_anchor="@id/list" app:layout_anchorGravity="bottom|end" /></RelativeLayout>
- Cómo agregar el diseño de fondo en el cuadro de diálogo Modal BottomSheet?
- ¿Cómo puedo mostrar el mapa de ruta de CurrentLocation a algún destino (algunos dirección) Ubicación