CollapsingToolBarLayout – barra de estado
He actualizado mi androide estudio hace unos días y comenzó a trabajar con el CoordinatorLayout y CollapsingToolbarLayout sólo probar cosas.
Parece que el color de la barra de herramientas sobreescribe el color inicial de la barra de estado y el color de la barra de estado de la barra (intentado tanto de xml como de código)
- ¿Cómo crear un diseño de barra de herramientas doblado?
- Deshabilitar desplazamiento vertical en CollapsingToolbarLayout / AppBarLayout
- Cuando se ejecuta en Nougat, ¿por qué el título se corta cuando se utiliza un CollapsingToolbarLayout?
- Android: CollapsingToolbarLayout y SearchView, texto superpuesto
- Expanda el appbarlayout cuando se desplaza la vista de reciclaje / fling to top
estado inicial:
Comenzó a desplazarse:
Desplazado hasta el colapso:
Así que las preguntas son:
1.Cómo puedo evitar que la barra de herramientas anule la barra de estado al colapsar (ni siquiera dejar que la imagen que estoy colapsando para ir por encima de ella).
2.Cómo puedo cambiar el color de la barra de estado después de colapsar
Otra cuestión que tuve es que le di el color inicial de la barra de herramientas y no sólo el color del scrim porque quería la barra de herramientas por encima de la imagen, sino que va a ir en la parte superior de la imagen y cubrirá parte de ella, así como cubrirá cualquier cosa que va a Colapsar detrás de él
Agregó color / estilo a la barra de herramientas en el xml:
3.¿Hay alguna manera de poner la barra de herramientas por encima de la imagen desde el principio y sólo colapsar la imagen? (Pensado en tal vez mantener la barra de herramientas fijada y el diseño del marco antes de la imagen, pero su todavía va a colapsar en el área de la barra de estado que es la pregunta principal.)
Actividad principal xml:
<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:contentScrim = "?attr/colorPrimary" app:statusBarScrim="?attr/colorAccent" --------> not changing android:id="@+id/my_ctl"> <ImageView android:id="@+id/image" android:src="@drawable/flights" android:layout_width="match_parent" android:layout_height="250dp" android:scaleType="centerCrop" android:fitsSystemWindows="true" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/AppTheme.PopupOverlay" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" app:layout_behavior="@string/appbar_scrolling_view_behavior" > <include layout="@layout/content_main" /> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> </android.support.design.widget.CoordinatorLayout>
MainActivity.java:
CollapsingToolbarLayout ctl = (CollapsingToolbarLayout) findViewById(R.id.my_ctl); //ctl.setContentScrimColor(Color.RED); ctl.setStatusBarScrimColor(Color.BLUE); --------> not working ctl.setTitle("blabla");
- RecyclerView dentro de la disposición de NestedScrollView sin desplazamiento
- Espacio adicional entre el título de la barra de herramientas Colapsing y el botón Inicio / Arriba
- ¿Cómo evitar el bloqueo de desplazamiento en sí mismo cuando se utiliza setNestedScrollingEnabled (false)?
- CollapsingToolbarLayout no debe colapsar cuando RecyclerView está vacío
app:statusBarScrim="@android:color/transparent"
Prueba a agregar android:fitsSystemWindows="true"
a AppBarLayout. Funcionó para mí.
Para el punto # 3: En la barra de herramientas añadir un fondo transparente
Android: background = "@ android: color / transparent"
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/AppTheme.PopupOverlay" app:layout_collapseMode="pin" android:background="@android:color/transparent" />
Para 2) hay un problema conocido
Por ahora estoy fijando el color del fondo de la barra de herramientas programmatically
mAppBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() { @Override public void onStateChanged(AppBarLayout appBarLayout, State state) { Toolbar toolbar = (Toolbar) mAppBarLayout.findViewById(R.id.toolbar_top); int toolbarBackground = (state == AppBarStateChangeListener.State.COLLAPSED) ? R.color.color_collapsed : R.color.color_non_collapsed; toolbar.setBackgroundColor(ContextCompat.getColor(DealsOptionsActivity.this, toolbarBackground)); } });
Esto es, por supuesto, una simple implementación. Puede optimizarlo.