Pertanyaan sederhana, tetapi saya tidak dapat menemukan jawaban. Bagaimana saya bisa menutup atau memperluas CollapsingToolbarLayout
program?
↓^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~shjjjadi ↓^^^^^^^^^^~~~~~~~~~~~~~~~~~~~~
Jawaban:
Menggunakan Support Library v23, Anda dapat menelepon
appBarLayout.setExpanded(true/false)
.Bacaan lebih lanjut: AppBarLayout.setExpanded (boolean)
sumber
Saya menggunakan kode ini untuk menyusutkan bilah alat. Masih tidak dapat menemukan cara untuk mengembangkannya.
Sunting 1: Fungsi yang sama dengan kecepatan negatifY
tetapi bilah alat tidak diperluas 100%dan false untuk param terakhir harus berfungsiSunting 2: Kode ini melakukan trik untuk saya
Akan mencoba menerapkan Perilaku sendiri.
sumber
onNestedFling
kefalse
.onNestedFling
sebelum mengatur fragmen. Setelah mengatur fragmen, saya dapat memanggil metode dengan sukses.Anda dapat menentukan seberapa banyak itu mengembang atau runtuh dengan animator khusus Anda. Cukup gunakan
setTopAndBottomOffset(int)
.Berikut ini sebuah contoh:
sumber
( -900 )
untuk mengaturvalueAnimator.setIntValues
Solusi beter adalah menggunakan- ( appBar.getTotalScrollRange() )
Saya telah menulis ekstensi kecil untuk
AppBarLayout
. Hal ini memungkinkan untuk memperluas dan memecahCollapsibleToolbarLayout
keduanya dengan dan tanpa animasi. Tampaknya melakukannya dengan benar.Jangan ragu untuk mencobanya.
Gunakan saja alih-alih Anda
AppBarLayout
, dan Anda dapat memanggil metode yang bertanggung jawab untuk meluaskan atau menciutkanCollapsingToolbarLayout
.Ini bekerja persis seperti yang diharapkan dalam proyek saya, tetapi Anda mungkin perlu mengubah nilai fling / scroll dalam
perform...
metode (terutama diperformExpandingWithAnimation()
) agar cocok dengan AndaCollapsibleToolbarLayout
.sumber
setExpanded
metode diAppBarLayout
.Gunakan
mAppBarLayout.setExpanded(true)
untuk memperluas Toolbar dan gunakanmAppBarLayout.setExpanded(false)
untuk menutup Toolbar.Jika Anda ingin mengubah ketinggian CollapsingToolbarLayout secara terprogram maka gunakan saja
mAppBarLayout.setLayoutParams(params)
;Memperluas:
Jatuh:
sumber
untuk orang-orang yang ingin bekerja dengan onNestedPreScroll dan dapatkan kesalahan seperti saya. saya mendapatkan NullPointerException di onCreate tanpa baris ini
dan tidak bekerja dengan baik dengan ini. tetapi saya mengatasi masalah ini dengan
di onCreate:
dan...
sumber
Coba ini...
Memperluas
Untuk mengingat
sumber
Ini dapat membantu memperluas atau menciutkan:
sumber
Saya sudah menggunakan ini
sumber
Untuk memperluas / menciutkan AppBarLayout secara terprogram:
sumber