Vous pouvez ajouter OnOffsetChangedListener
à AppBarLayout
pour déterminer quand CollapsingToolbarLayout
est réduit ou développé et définir son titre.
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
}
})
J'ai essayé la solution de dlohani, mais je n'ai pas aimé à cause de la décoloration. Avec cette solution, vous supprimez complètement la décoloration.
L'astuce consiste à créer un nouveau style avec textSize égal à 0,1sp ou 0sp (celui-ci plante sur SDK <19) et textColor transparent:
Pour SDK <19
Pour SDK> = 19
Appliquez-le ensuite au CollapsingToolbarLayout dans votre mise en page:
la source
J'ai pu obtenir l'effet souhaité en ajoutant la propriété suivante à la mise en page xml:
donc mon CollapsingToolbarLayout ressemble à ceci
la source
J'ai une réponse plus simple:
Bon codage!
la source
mCollapsingToolbarLayout.setExpandedTitleColor(Color.argb(255,0,0,0))
Ce code fonctionne pour moi: utilisez color.parse color car si votre couleur d'arrière-plan est différente, remplacez-la par du blanc et votre titre ne s'affiche pas
Ou vous pouvez utiliser pour transparent
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
la source
J'ai ajouté avec succès une vue de texte en fondu, ajoutez simplement une vue de texte dans la barre d'outils et définissez son alpha en fonction du rappel verticalOffset dans la barre d'applications
la source
Voici la solution la plus simple et la plus fonctionnelle également avec l'API 23:
app: ExpandTitleTextAppearance doit hériter de TextAppearance.
Donc, dans votre styles.xml, ajoutez ces lignes:
Ensuite, dans votre CollapsingToolbarLayout, ajoutez cette ligne.
C'est tout les gens!
la source
La solution ci-dessous fonctionne parfaitement.
la source
Voici ma solution:
la source
À mon avis, une solution un peu plus élégante serait quelque chose comme ça.
Et l'utilisation ressemblerait à quelque chose comme ça
Il est également possible de fondre / insérer du texte au lieu de simplement l'afficher ou de le cacher.
la source
Cela fonctionne pour moi.
la source
Ceci est la version kotlin qui fonctionne pour moi:
la source
ajoutez simplement ce code:
la source