Вы можете добавить, OnOffsetChangedListener
чтобы AppBarLayout
определить, когда CollapsingToolbarLayout
свернуто или развернуто и установить его заголовок.
Ява
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;
}
}
});
Котлин
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
}
})
Я попробовал решение Длохани, но мне не понравилось из-за затухания. С этим решением вы полностью удаляете затухание.
Хитрость заключается в создании нового стиля с textSize равным 0,1sp или 0sp (этот сбой при SDK <19) и прозрачным textColor:
Для SDK <19
Для SDK> = 19
Затем примените его к CollapsingToolbarLayout в вашем макете:
источник
Я смог получить желаемый эффект, добавив следующее свойство в макет XML:
так что мой CollapsingToolbarLayout выглядит так
источник
У меня есть более простой ответ:
Удачного кодирования!
источник
mCollapsingToolbarLayout.setExpandedTitleColor(Color.argb(255,0,0,0))
Этот код работает для меня: используйте color.parse color, потому что если у вас другой цвет фона, замените его на белый, а название не будет отображаться
Или вы можете использовать для прозрачного
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
источник
Я успешно добавил исчезающее текстовое представление, просто добавил текстовое представление на панели инструментов и установил его альфа на основе verticalOffset в обратном вызове панели приложения.
источник
Вот самое простое и рабочее решение также с API 23:
Приложение: extendedTitleTextAppearance должно наследовать TextAppearance.
Итак, в вашем файле styles.xml добавьте следующие строки:
Затем в вашем CollapsingToolbarLayout добавьте эту строку.
Это все, ребята!
источник
Приведенное ниже решение работает отлично.
источник
Вот мое решение:
источник
По моему мнению, более элегантное решение было бы примерно таким.
И использование будет выглядеть примерно так
Существует также возможность исчезнуть / в тексте вместо того, чтобы просто показать или скрыть его.
источник
Это работает для меня.
источник
Это версия котлина, которая работает для меня:
источник
просто добавьте этот код:
источник