Android CoordinatorLayout – Inconsistencias entre versiones de Android

Utilicé la biblioteca de diseño de soporte de Android para crear una vista de perfil para una aplicación en la que estoy trabajando.

El perfil se compone de una cabecera con una imagen de cabecera como fondo y una imagen de perfil redondeada en el centro. Además, hay una pequeña vista en la esquina inferior de la cabecera.

Debajo del encabezado hay un viewpager con un tablayout.

El problema que estoy enfrentando es que hay inconsistencias entre Android 5.1.1 y 5.0.2 y abajo.

Así es como se muestra el perfil en un Nexus 5 con 5.1.1 Android: No se muestra TabLayout aquí

Y aquí está cómo se muestra el perfil en un Xperia Z2 con 5.0.2 Android: El encabezado no muestra vistas dentro de CollapsingToolbarLayout

Aquí está el código:

<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:fitsSystemWindows="true" android:background="@color/white"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_height="250dp" android:layout_width="match_parent" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/profile_collapsingtoolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/profile_header" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" app:layout_collapseMode="parallax" app:layout_scrollFlags="scroll|enterAlways"/> <com.makeramen.roundedimageview.RoundedImageView android:id="@+id/profile_image" android:layout_width="90dp" android:layout_height="90dp" app:riv_corner_radius="45dp" app:riv_border_color="@color/red" app:riv_border_width="1dp" android:layout_gravity="center" app:layout_collapseMode="none" app:layout_scrollFlags="scroll|enterAlways" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_margin="5dp" android:layout_gravity="bottom|right" android:background="@drawable/shape_usertype_background"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="12sp" android:textColor="@color/white" android:text="Professional"/> </FrameLayout> <android.support.v7.widget.Toolbar android:id="@+id/profile_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/profile_pager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" android:paddingTop="45dp"/> <android.support.design.widget.TabLayout android:id="@+id/profile_tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:tabGravity="center" app:tabMode="scrollable" app:tabIndicatorColor="@color/red" app:tabTextColor="@color/main_dark" app:tabSelectedTextColor="@color/red" android:fitsSystemWindows="true" app:layout_anchor="@id/appbar" app:layout_anchorGravity="bottom" android:background="@color/white" /> <android.support.design.widget.FloatingActionButton android:id="@+id/profile_floatingbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="16dp" android:clickable="true" android:src="@android:drawable/ic_menu_share" app:backgroundTint="@color/red" app:layout_anchor="@id/profile_pager" app:layout_anchorGravity="bottom|right|end" app:rippleColor="@android:color/darker_gray" app:borderWidth="0dp"/> </android.support.design.widget.CoordinatorLayout> </FrameLayout> 

Así que, ¿alguien tiene una idea de cómo arreglar esto?

¡Gracias!

Biblioteca de diseño es, por desgracia bastante buggy y debe ser considerado "beta" en lugar de producción lista. Se ve y se comporta de manera diferente dependiendo de la versión de Android de su aplicación se está ejecutando y los problemas que he detectado no sólo están relacionados con CoordinatorLayout , pero incluso un widget relativamente simple como TextInputLayout no funciona de la misma manera en todas partes. Saber biblioteca de diseño es un producto muy fresco, no estoy seguro de que vale la pena pasar su tiempo trabajando alrededor (no arreglar) los errores de Google. Sólo esperaba la siguiente iteración de la biblioteca, esperando mejoras y correcciones de errores.

  • TabLayout pestaña de pestaña seleccionada
  • Cómo cambiar la pestaña seleccionada Color del texto con TabLayout de código en Android?
  • Android TabLayout: distribuir uniformemente
  • Cómo utilizar tabContentStart para iniciar el contenido desde la mitad de la pantalla del dispositivo
  • ¿Cómo puedo cambiar el color del icono de la pestaña seleccionada de TabLayout?
  • Android ViewPager Cargando fragmentos incorrectos
  • Cómo detectar un clic en una pestaña ya seleccionada en TabLayout
  • Programe ocultar / mostrar el diseño de soporte de Android Android TabLayout dentro de AppBarLayout
  • Tablayout de la biblioteca de soporte de diseño de Android mediante el diseño de pestañas personalizadas, pero el diseño que envuelve las pestañas
  • Cómo establecer el ancho de la pestaña en el diseño de la pestaña?
  • ¿Cómo puedo cambiar el color de fondo de una pestaña cuando se usa TabLayout?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.