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.
- No se encontró ninguna vista para id 0x7f0e00d5 (com.example.page:id/dialogViewpager) para el fragmento OneFragment {92c0220 # 1 id = 0x7f0e00d5 android: switcher: 2131624149: 0}
- No permita que el usuario haga clic en una de las pestañas
- Deshabilitar tabulaciones en TabLayout
- Personalización del indicador TabLayout
- Cómo reemplazar fragmento a otro fragmento en TabLayout y ViewPager
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:
Y aquí está cómo se muestra el perfil en un Xperia Z2 con 5.0.2 Android:
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!
- Android Cambio de un diseño normal a un error de diseño de tabulación en los botones de imagen y otros?
- TabLayout con viewpager no desplazamiento suave
- Tablayout con vista personalizada Broken en 23.4.0 lib de diseño
- ¿Cómo cambiar el título de la barra de herramientas mediante el diseño?
- Fragmento en TabLayout sólo carga cuando el usuario desliza Android
- Ocultar / Mostrar la barra de herramientas cuando se desplaza el fragmento en las pestañas
- Ocultar barra de herramientas con CoordinatorLayout, pero RecyclerView en un fragmento
- IllegalStateException: No se puede cambiar la etiqueta del fragmento era android: switcher ahora android: switcher
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.
- Atascado con diseño de SQL android utilizando SQLite y Group By
- Cómo poner el botón Cerrar sesión de Facebook al final de la vista de navegación