Anda dapat menambahkan OnOffsetChangedListener
ke AppBarLayout
untuk menentukan kapan CollapsingToolbarLayout
diciutkan atau diperluas dan atur judulnya.
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
}
})
Saya mencoba solusi dlohani, tetapi tidak suka karena fading out. Dengan solusi ini, Anda menghapus fading sepenuhnya.
Caranya adalah membuat gaya baru dengan textSize sama dengan 0,1sp atau 0sp (yang ini mogok di SDK <19) dan textColor transparan:
Untuk SDK <19
Untuk SDK> = 19
Kemudian menerapkannya ke CollapsingToolbarLayout di tata letak Anda:
sumber
Saya bisa mendapatkan efek yang diinginkan dengan menambahkan properti berikut ke tata letak xml:
jadi CollapsingToolbarLayout saya terlihat seperti ini
sumber
Saya punya jawaban yang lebih sederhana:
Selamat Coding!
sumber
mCollapsingToolbarLayout.setExpandedTitleColor(Color.argb(255,0,0,0))
Kode ini berfungsi untuk saya: Gunakan warna color.parse karena jika warna latar belakang Anda berbeda maka ganti dengan putih dan judul Anda tidak ditampilkan
Atau bisa Anda gunakan untuk transparan
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
sumber
Saya berhasil menambahkan tampilan teks memudar, cukup tambahkan tampilan teks di toolbar, dan pengaturan alpha berdasarkan pada verticalOffset di appbar callback
sumber
Di sini solusi paling sederhana dan berfungsi juga dengan api 23:
app: extendedTitleTextAppearance harus mewarisi TextAppearance.
Jadi, di styles.xml Anda tambahkan baris ini:
Kemudian, di CollapsingToolbarLayout Anda, tambahkan baris ini.
Itu semua orang!
sumber
Solusi di bawah ini berfungsi dengan sempurna.
sumber
Ini solusinya:
sumber
Menurut pendapat saya solusi yang sedikit lebih elegan akan menjadi seperti ini.
Dan penggunaannya akan terlihat seperti ini
Ada juga kemungkinan untuk memudar / dalam teks, bukan hanya menunjukkan atau menyembunyikannya.
sumber
Ini bekerja untuk saya.
sumber
Ini adalah versi kotlin yang berfungsi untuk saya:
sumber
tambahkan saja kode ini:
sumber