Puede agregar OnOffsetChangedListener
a AppBarLayout
para determinar cuándo CollapsingToolbarLayout
se contrae o expande y establecer su título.
Java
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsingToolbarLayout);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appBarLayout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean isShow = true;
int scrollRange = -1;
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (scrollRange == -1) {
scrollRange = appBarLayout.getTotalScrollRange();
}
if (scrollRange + verticalOffset == 0) {
collapsingToolbarLayout.setTitle("Title");
isShow = true;
} else if(isShow) {
collapsingToolbarLayout.setTitle(" ");//careful there should a space between double quote otherwise it wont work
isShow = false;
}
}
});
Kotlin
var isShow = true
var scrollRange = -1
appBarLayout.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { barLayout, verticalOffset ->
if (scrollRange == -1){
scrollRange = barLayout?.totalScrollRange!!
}
if (scrollRange + verticalOffset == 0){
collapsingToolbarLayout.title = "Title Collapse"
isShow = true
} else if (isShow){
collapsingToolbarLayout.title = " " //careful there should a space between double quote otherwise it wont work
isShow = false
}
})
Probé la solución de dlohani, pero no me gustó por la desaparición. Con esta solución, eliminas el desvanecimiento por completo.
El truco consiste en crear un nuevo estilo con textSize igual a 0.1sp o 0sp (este se bloquea en SDK <19) y textColor transparent:
Para SDK <19
Para SDK> = 19
Luego aplíquelo a CollapsingToolbarLayout en su diseño:
fuente
Pude obtener el efecto deseado al agregar la siguiente propiedad al diseño xml:
entonces mi CollapsingToolbarLayout se ve así
fuente
Tengo una respuesta más simple:
¡Feliz codificación!
fuente
mCollapsingToolbarLayout.setExpandedTitleColor(Color.argb(255,0,0,0))
Este código funciona para mí: use color.parse color porque si el color de fondo es diferente, reemplácelo con blanco y su título no se mostrará
O puedes usar para transparente
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
fuente
Agregué con éxito una vista de texto que se desvanece, simplemente agregue una vista de texto en la barra de herramientas y configuré su alfa en función de la vertical Offset en la devolución de llamada de la barra de aplicaciones
fuente
Aquí la solución más simple y funcional también con api 23:
aplicación: extendedTitleTextAppearance tiene que heredar TextAppearance.
Entonces, en su styles.xml agregue estas filas:
Luego, en su CollapsingToolbarLayout, agregue esta fila.
¡Eso es todo amigos!
fuente
La siguiente solución funciona perfectamente.
fuente
Aquí está mi solución:
fuente
En mi opinión, una solución un poco más elegante sería algo como esto.
Y el uso se vería así
También existe la posibilidad de desvanecer / introducir texto en lugar de solo mostrarlo u ocultarlo.
fuente
Esto funciona para mi.
fuente
Esta es la versión de Kotlin que funciona para mí:
fuente
solo agrega este código:
fuente