Você pode adicionar OnOffsetChangedListener
para AppBarLayout
determinar quando CollapsingToolbarLayout
é recolhido ou expandido e definir seu 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
}
})
Tentei a solução de dlohani, mas não gostei por causa do desbotamento. Com esta solução, você remove completamente o desbotamento.
O truque é criar um novo estilo com textSize igual a 0,1sp ou 0sp (este trava no SDK <19) e textColor transparent:
Para SDK <19
Para SDK> = 19
Em seguida, aplique-o ao CollapsingToolbarLayout no seu layout:
fonte
Consegui obter o efeito desejado adicionando a seguinte propriedade ao layout xml:
então meu CollapsingToolbarLayout se parece com isso
fonte
Eu tenho uma resposta mais simples:
Feliz codificação!
fonte
mCollapsingToolbarLayout.setExpandedTitleColor(Color.argb(255,0,0,0))
Este código funciona para mim: Use color.parse color porque se a cor do plano de fundo for diferente, substitua por branco e o título não será exibido
Ou você pode usar para transparentes
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
fonte
Adicionei com êxito uma visualização de texto desbotada, basta adicionar uma visualização de texto na barra de ferramentas e defini-la como alfa com base no verticalOffset no retorno de chamada da barra de aplicativos
fonte
Aqui a solução mais simples e funcional também com a api 23:
app: extendedTitleTextAppearance precisa herdar TextAppearance.
Portanto, em seu styles.xml, adicione estas linhas:
Em seguida, no seu CollapsingToolbarLayout, adicione esta linha.
Isso é tudo, pessoal!
fonte
A solução abaixo funciona perfeitamente.
fonte
Aqui está a minha solução:
fonte
Na minha opinião, uma solução um pouco mais elegante seria algo assim.
E o uso seria algo como isto
Há também a possibilidade de desaparecer / entrar em texto em vez de apenas mostrá-lo ou ocultá-lo.
fonte
Isso funciona para mim.
fonte
Esta é a versão kotlin que funciona para mim:
fonte
basta adicionar este código:
fonte