Możesz dodać element OnOffsetChangedListener
do, AppBarLayout
aby określić, kiedy CollapsingToolbarLayout
jest zwinięty lub rozwinięty i ustawić jego tytuł.
Jawa
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
}
})
Wypróbowałem rozwiązanie dlohani, ale nie podobało mi się to z powodu zanikania. Dzięki takiemu rozwiązaniu całkowicie usuniesz blaknięcie.
Sztuczka polega na utworzeniu nowego stylu z textSize równym 0,1sp lub 0sp (ten ulega awarii w SDK <19) i textColor przezroczystym:
Dla SDK <19
Dla SDK> = 19
Następnie zastosuj go do CollapsingToolbarLayout w swoim układzie:
źródło
Udało mi się uzyskać pożądany efekt, dodając następującą właściwość do układu xml:
więc mój CollapsingToolbarLayout wygląda tak
źródło
Mam prostszą odpowiedź:
Miłego kodowania!
źródło
mCollapsingToolbarLayout.setExpandedTitleColor(Color.argb(255,0,0,0))
Ten kod działa dla mnie: użyj koloru color.parse, ponieważ jeśli kolor tła jest inny, zastąp go białym, a tytuł nie będzie wyświetlany
Lub możesz użyć przezroczystości
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
źródło
Pomyślnie dodałem zanikający widok tekstu, po prostu dodałem widok tekstu na pasku narzędzi i ustawiłem jego alfa na podstawie verticalOffset w wywołaniu zwrotnym paska aplikacji
źródło
Tutaj najprostsze i działające rozwiązanie również z interfejsem API 23:
app: extendedTitleTextAppearance musi dziedziczyć TextAppearance.
Więc w swoim styles.xml dodaj te wiersze:
Następnie dodaj ten wiersz w CollapsingToolbarLayout.
To wszystko ludzie!
źródło
Poniższe rozwiązanie sprawdza się idealnie.
źródło
Oto moje rozwiązanie:
źródło
W mojej opinii nieco bardziej eleganckim rozwiązaniem byłoby coś takiego.
A użycie wyglądałoby mniej więcej tak
Istnieje również możliwość wygaszania / pojawiania się tekstu zamiast jego pokazywania lub ukrywania.
źródło
To działa dla mnie.
źródło
To jest wersja Kotlin, która działa dla mnie:
źródło
po prostu dodaj ten kod:
źródło