Cukup unduh paketnya dari sini dan tambahkan ke classpath proyek Anda, atau cukup gunakan repo maven:
Gradasi:
' com.ramotion.foldingcell:folding-cell:1.2.3 '
SBT:
libraryDependencies += " com.ramotion.foldingcell " % " folding-cell " % " 1.2.3 "
Pakar:
< dependency >
< groupId >com.ramotion.foldingcell</ groupId >
< artifactId >folding-cell</ artifactId >
< version >1.2.3</ version >
</ dependency >
com.ramotion.foldingcell.FoldingCell
ke tata letak Anda < com .ramotion.foldingcell.FoldingCell
xmlns : android = " http://schemas.android.com/apk/res/android "
android : id = " @+id/folding_cell "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
</ com .ramotion.foldingcell.FoldingCell>
2. Tambahkan tepat dua elemen anak ke sel Anda. Anak pertama ( tampilan konten ) selalu mewakili tata letak keadaan terbuka dan anak kedua ( tampilan judul ) mewakili tata letak keadaan terlipat. Tentu saja, tata letak tersebut dapat berisi sejumlah elemen turunan dan kompleksitasnya dapat berapa pun, namun agar berfungsi dengan benar, ada beberapa batasan: tinggi tampilan konten harus minimal 2x kali lebih besar dari tinggi tampilan judul , dan tinggi masing-masing elemen turunan. tata letak tersebut harus disetel ke android:layout_height="wrap_content"
. Jika Anda ingin menyetel tinggi persisnya di dp
, Anda dapat menyetel tinggi elemen anak di tata letak Anda sendiri di dalam tampilan konten atau tampilan judul . Selain itu, Anda perlu menyembunyikan tata letak tampilan konten menggunakan android:visibility="gone"
.
< com .ramotion.foldingcell.FoldingCell
xmlns : android = " http://schemas.android.com/apk/res/android "
android : id = " @+id/folding_cell "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
< FrameLayout
android : id = " @+id/cell_content_view "
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
android : background = " @android:color/holo_green_dark "
android : visibility = " gone " >
< TextView
android : layout_width = " match_parent "
android : layout_height = " 250dp " />
</ FrameLayout >
< FrameLayout
android : id = " @+id/cell_title_view "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
< TextView
android : layout_width = " match_parent "
android : layout_height = " 100dp "
android : background = " @android:color/holo_blue_dark " />
</ FrameLayout >
</ com .ramotion.foldingcell.FoldingCell>
3. Hampir selesai! Tinggal dua langkah lagi! Untuk animasi yang benar, Anda perlu menyiapkan dua properti pada elemen akar Sel Lipat Anda:
android:clipChildren="false"
android:clipToPadding="false"
4. Langkah terakhir! Tambahkan onClickListener ke Sel Lipat Anda di MainActivity.java
untuk mengaktifkan animasi:
@ Override
protected void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_main );
// get our folding cell
final FoldingCell fc = ( FoldingCell ) findViewById ( R . id . folding_cell );
// attach click listener to folding cell
fc . setOnClickListener ( new View . OnClickListener () {
@ Override
public void onClick ( View v ) {
fc . toggle ( false );
}
});
}
5. Langkah ekstra - menyesuaikan pengaturan sel. Untuk saat ini, ada tiga parameter utama - waktu animasi, warna sisi belakang, dan jumlah pembalikan tambahan. Jika dua yang pertama tidak menimbulkan pertanyaan, maka yang ketiga memerlukan penjelasan. Ini adalah hitungan flips yang akan dieksekusi setelah flip pertama (utama). Nilai defaultnya adalah 0
(pilih otomatis). Juga ada parameter tambahan keempat - tinggi kamera, yang mengontrol level (kedalaman) efek 3d. Ada dua cara untuk mengubah pengaturan sel: Dari file tata letak xml dengan namespace res-auto
xmlns:folding-cell="http://schemas.android.com/apk/res-auto"
:
folding-cell:animationDuration="1000"
folding-cell:backSideColor="@color/bgBackSideColor"
folding-cell:additionalFlipsCount="2"
folding-cell:cameraHeight="30"
Atau dari kode:
// get our folding cell
final FoldingCell fc = ( FoldingCell ) findViewById ( R . id . folding_cell );
// set custom parameters
fc . initialize ( 1000 , Color . DKGRAY , 2 );
// or with camera height parameter
fc . initialize ( 30 , 1000 , Color . DKGRAY , 2 );
Anda dapat menemukan ini dan contoh lain yang lebih kompleks di repositori ini
Folding Cell dirilis di bawah lisensi MIT. Lihat LISENSI untuk detailnya.
Perpustakaan ini adalah bagian dari pilihan proyek sumber terbuka UI terbaik kami
Jika Anda menggunakan perpustakaan sumber terbuka di proyek Anda, pastikan untuk memberi kredit dan tautan balik ke www.ramotion.com
Coba komponen UI ini dan komponen serupa lainnya di aplikasi Android kami. Hubungi kami jika berminat.