Saya benar-benar ingin menerapkan ini (navigasi samping) di aplikasi saya sendiri, apakah ada yang tahu bagaimana Google berhasil melakukan ini?
Mereka tampaknya telah menarik jendela saat ini ke samping dan membuat navigasi terbang mereka sendiri.
Saya benar-benar ingin menerapkan ini (navigasi samping) di aplikasi saya sendiri, apakah ada yang tahu bagaimana Google berhasil melakukan ini?
Mereka tampaknya telah menarik jendela saat ini ke samping dan membuat navigasi terbang mereka sendiri.
Jawaban:
Sebenarnya, ada cara untuk melakukan ini. Bahkan tanpa menerapkan Anda sendiri
ActionBar
.Lihat saja
hierachyviewer
! (Terletak di direktori alat)Ada
DecorView
, danLinearLayout
sebagai seorang anak. IniLinearLayout
berisiActionBar
konten dan konten lainnya. Jadi, Anda cukup menerapkan beberapaFrameLayout.LayoutParams
untuk iniLinearLayout
dan mendapatkan ruang di sisi kiri dengan cara ini. Kemudian, Anda dapat mengisi ruang ini dengan menu-ListView Anda dan menghamparkan konten lainnya dengan FrameLayout, yang, saat diklik, menciutkan menu. Jadi, inilah beberapa kodenya:Pertama, kelas untuk menciutkan / meluaskan (SlideMenu.java):
Beberapa metode bantuan (bagi saya, di Functions.java statis):
Kemudian, tata letak:
Tata letak menu (res / layout / menu.xml)
Tata letak listitems (res / layout / menu_listitem.xml):
Bagaimana cara menggunakannya:
Di Anda
onCreate()
:Di handler untuk tombol beranda ActionBar Anda:
Itu dia!
Dan sekarang, tangkapan layar kecil itu beraksi:
Sejauh yang saya tahu, ini berhasil. Jika Anda mengalami masalah atau penjelasan saya tidak jelas, silakan hubungi saya!
EDIT:
ExtendedViewPager
&ExtendedPagerStrip
:ExtendedViewPager:
ExtendedPagerTabStrip:
Saya menggunakan ini
SlideMenu
untuk Aktivitas denganViewPager
denganPagerTabStrip
untuk tab seperti Talk, Market, dll. Anda tidak dapat menonaktifkan Tampilan ini dengan cara yang mudah, jadi dua kelas di atas hanya memperluasnya untuk menghentikanonTouch
acara saat dinonaktifkan.sumber
Ada beberapa upaya untuk melakukan ini, namun saya belum menemukan lib atau kode sumber tentang cara mengimplementasikannya dengan sukses dengan actionbar di semua level api. Satu lib yang menjanjikan ada di sini
https://github.com/jfeinstein10/SlidingMenu
berikut adalah video dari aplikasi contoh .
di sini adalah tautan aplikasi Google Play .
Ini berfungsi dengan ActionbarSherlock. Anda harus membangun perpustakaan SlidingMenu dengan ABS untuk membuatnya berfungsi. Berfungsi dan tampak hebat!
sumber
Melakukan pembulatan dari implementasi asli dan menambahkan parsing XML serta
autodetection
yang mungkin adaactionbar
, sehingga berfungsi dengan native serta bilah tindakan dukungan sepertiActionBarSherlock
.Semuanya sekarang menjadi proyek perpustakaan bersama dengan aplikasi contoh dan dijelaskan di Sliding Menu untuk android Terima kasih kepada scirocco untuk ide dan kode awal!
sumber
Jika Anda menggunakan API level yang lebih tinggi dari 11, Anda dapat menggunakan pendekatan yang lebih sederhana yang terinspirasi oleh jawaban yang diberikan oleh @Scirocco
Idenya di sini adalah menggunakan
ValueAnimator
yang mengubah dan tidak hanya menganimasikan tata letak utama dengan bilah Tindakan, sehingga Anda dapat berinteraksi dengan tampilan yang diperbesar yang ingin Anda gunakan sebagai panel geser. Anda harus mengganti nilai hardcode dengan sesuatu yang berguna untuk aplikasi Anda.Saya harap ini membantu :)
sumber
Nah saat ini saya sedang mengerjakan sebuah proyek dan menemukan menu Sliding, saya mencari di Google tetapi sangat kecewa melihat bahwa tidak ada yang memberikan beberapa kode atau petunjuk tentang cara mulai membuat menu geser, tetapi setiap orang telah memberikan tautan ke beberapa proyek / perpustakaan github untuk digunakan, saya memutuskan untuk melakukannya sendiri dan akhirnya saya memiliki Menu Geser yang Siap ...
Saya telah menghabiskan dua hari untuk itu
1. pada pembuatan animasi sliding
2. untuk membuatnya bekerja dengan semua resolusi layar
Ini sangat mudah dan sederhana setelah Anda mendapatkan ide tentang Animasi , saya telah membaca beberapa di mana, tidak masuk akal untuk menemukan kembali Roda (orang-orang yang merujuk ke kode sumber github dari menu geser), tetapi saya percaya bahwa Anda harus setidaknya sekali cobalah membuatnya sendiri sehingga Anda mendapatkan gambaran bagaimana sebenarnya itu bekerja dan berfungsi: P
jadi ini adalah gambaran bagaimana menu geser saya akan bekerja
1. Temukan.xml
//later in the code it will be refer as findLayout
2. Filter.xml
//later in code refer as FilterLayout
Dalam find.xml saya telah menyertakan filter.xml pada awalnya yang tidak terlihat
Sekarang FilterAnimation.java
Sekarang Find.java
Berikut adalah animasinya res / anim
1.filter_slide_in.xml
2.filter_slide_out.xml
3. slide_lain_in.xml
4.out_luncur_lain.xml
Ini dia Menu Geser yang berfungsi dan berfungsi lengkap, dan Anda dapat menyesuaikannya untuk memenuhi kebutuhan Anda, jika ada yang masih memiliki masalah pengaturan, jangan ragu untuk bertanya, saya merasa senang untuk membantu Anda :)
sumber
Saya telah membuat solusi saya sendiri untuk menggeser tampilan dan menampilkan menu di bawahnya, karena banyak solusi lain yang tampaknya tidak berfungsi pada versi Android yang lebih lama atau tidak memiliki instruksi yang tepat tentang cara membuatnya berfungsi.
Solusi saya memiliki beberapa fitur berikut:
Solusinya menggunakan tata letak kustom, yang disebut SlidingMenuLayout, yang Anda diharapkan untuk menambahkan 2 tampilan. Tampilan pertama yang Anda tambahkan adalah menu, yang kedua adalah tampilan utama.
Cara termudah untuk menambahkan layout ke proyek Anda yang sudah ada adalah dengan mengganti
setContentView()
metode Activity Anda :Dalam contoh ini,
MenuView
adalah tampilan yang akan menampilkan menu. Terserah Anda untuk mengimplementasikan tampilan ini.Terakhir, Anda dapat menambahkan tombol (biasanya di sudut kiri atas tampilan utama Anda), yang memanggil
openMenu()
ataucloseMenu()
pada tata letak yang sesuai.Kode untuk
SlidingMenuLayout
ditemukan di halaman proyek GitHub .sumber
Bagi Anda yang menggunakan pustaka SlidingMenu ( https://github.com/jfeinstein10/SlidingMenu ) ada cara untuk memasukkannya dan tampaknya berhasil! Dengan bantuan @Scirocco, masukkan ini
onCreate
ke dalam aktivitas Anda:pada dasarnya apa yang dilakukannya adalah mengganti tampilan
linearlayout
dalam dekorasi dengan sebagaislidingmenu
gantinya.Perhatikan: Saya hanya mengujinya dengan ringan tetapi tampaknya berhasil.
sumber
ini kelasku meluas
SlidingPaneLayout
. Bisa meluncur dengan actiosumber