Apa perbedaan antara Kompatibilitas ActionBarSherlock dan Action Bar
Beberapa hari yang lalu Google baru saja merilis Kompatibilitas ActionBar yang membuat saya sangat bingung. Apakah Kompatibilitas Bar Aksi berfungsi sama dengan ActionBarSherlock dan apakah kodingnya sama?
Contoh: Apakah ikon aplikasi untuk menavigasi "ke atas" atau ActionBar.Tab didukung di Kompatibilitas Bilah Tindakan?
Jawaban:
ActionBarSherlock memberi aplikasi Anda bilah tindakan terlepas dari * apa versi Android API yang sedang dijalankan aplikasi Anda. Kompatibilitas Bilah Tindakan memberi Anda bilah tindakan hanya jika perangkat yang Anda jalankan adalah API level 3.0 atau lebih tinggi.
* Perhatikan bahwa jika perangkat yang Anda jalankan tidak 3.0 atau di atas, ActionBarSherlock akan menggunakan implementasi sendiri dari action bar, bukan yang asli.
--EDIT--
Tampaknya hal-hal telah berubah dan sebenarnya tidak ada perbedaan antara ActionBarSherlock dan Kompatibilitas Bilah Tindakan lagi. Silakan baca komentar di bawah untuk detailnya.
--EDIT--
Setelah menggunakan keduanya sekarang, saya dapat mengatakan bahwa saya sebenarnya lebih memilih kompatibilitas ActionBarSherlock ke Action Bar. ActionBarSherlock sangat mudah dan menyenangkan untuk digunakan.
--EDIT-- Seperti LOG_TAG sebutkan, sekarang ada dukungan untuk bilah tindakan di Perpustakaan Dukungan Android. Saya belum punya kesempatan untuk menggunakannya, tapi saya akan membayangkan itu yang terbaik untuk digunakan.
sumber
why
danhow
untuk menggunakan API ActionBarCompat baru, android-developers.blogspot.in/2013/08/…ActionBarSherlock vs ActionBarCompat:
Saya Hanya ingin menaruh sedikit perbedaan kode antara ActionBarSherlock vs ActionBarCompat Lib
Kami dapat memigrasi beberapa aplikasi dari ActionBarSherlock ke ActionBarCompat:
Langkah:
Impor proyek AppCompat .
Ganti
SherlockFragmentActivity
denganActionBarActivity
.Ganti
SherlockFragment
denganFragment
.Ubah
Menu
,MenuItem
dangetSupportMenuInflater()
referensi. Ubah cara Anda mendapatkan Tampilan Tindakan.mSearchView = (SearchView)MenuItemCompat.getActionView(mSearchItem)
Untuk info lebih lanjut, silakan merujuk slide ini oleh + NickButcher (Google)
Terima kasih kepada Sumber: http://gmariotti.blogspot.in/2013/07/actionbarsherlock-vs-actionbarcompat.html http://antonioleiva.com/actionbarcompat-migrating-actionbarsherlock/
Jangan lupa membaca pengembang ini. Android untuk lebih lanjut tentang ABC!
Catatan: Menyiapkannya untuk pengujian unit dengan cara yang sama seperti ABS sayangnya tidak dimungkinkan dengan pustaka dukungan.
Keluaran:
Penghargaan: Gabriele Mariotti
sumber
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
dan tidak harus menjadi proyek perpustakaan.Baru saja menyelesaikan apa yang @Kurtis Nusbaum dengan contoh praktis.
UPDATE: seperti yang dikatakan @ rudy-s, dengan pustaka dukungan android terbaru (api 18), saya melihat mereka sudah memiliki dukungan bawaan untuk actionbar (disebut kelas ActionBarCompat).
Saya membangun dua aplikasi sederhana untuk menunjukkan perbedaan visual antara ActionBarSherlock dan Kompatibilitas ActionBar. Lihat gambar perbandingan:
Sekarang tampilan ketika tombol menu ditekan:
Seperti yang Anda lihat, gambar hanya menegakkan apa yang dikatakan. Kompatibilitas Bilah Tindakan memberi Anda bilah tindakan hanya jika perangkat yang Anda jalankan adalah API level 3.0 atau lebih tinggi. Sementara Sherlock lebih umum.
Di bawah ini Anda dapat melihat sumber aplikasi.
File menu xml adalah sama:
Aktivitas kompatibilitas:
Aktivitas Sherlock:
Konfigurasi tambahan diperlukan pada aplikasi sherlock:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
UPDATE: seperti yang dikatakan @ rudy-s, dengan pustaka dukungan android terbaru (api 18), saya melihat mereka sudah memiliki dukungan bawaan untuk actionbar (disebut kelas ActionBarCompat).
sumber
Actionbar Sherlock jauh lebih maju dan jauh lebih ambisius daripada proyek kompatibilitas Actionbar sederhana.
Kompatibilitas bilah Tindakan dapat dianggap sebagai "sampel" atau titik awal yang baik jika Anda hanya ingin memukul Bilah Tindakan di atas aplikasi Anda.
ActionBarSherlock dibangun di perpustakaan kompatibilitas, dan memberi Anda (seperti sampel kompatibilitas panel aksi) Action Bar di perangkat pra-3.0. Selain itu ia memiliki fitur tambahan yang tidak ada dalam kode Compat ActionBar. Ini termasuk fitur seperti, tetapi tidak terbatas pada
Satu-satunya downside yang saya lihat dalam menggunakan ActionbarSherlock adalah Anda mengunci diri Anda di perpustakaan itu. Jika karena alasan tertentu akan mati dalam waktu dekat, Anda harus mempertahankannya sendiri (misalnya jika tidak ada implementasi Jellybean yang muncul). Ini merepotkan (bukan masalah besar) karena semua fragmen Anda meluas ke SherlockFragemnt dan semua Aktivitas Anda. SherlockActivity.
sumber
Well, implementasi @Jake melangkah lebih jauh dari apa yang dilakukan compat Actionbar, lebih tepatnya Actionbar Compat hanyalah contoh dasar tentang bagaimana Anda bisa mendukung semua aplikasi dengan pseudo-actionbar untuk rilis sebelum dari Honeycomb (API 13). Meskipun target mereka adalah actionbar yang kompatibel lintas yang sama, mereka memiliki pendekatan yang berbeda.
Pendekatan ActionbarCompat
Implementasi ini tidak menggunakan pustaka dukungan Kompatibilitas Android sebagai gantinya ia membuat kelas dasar yang disebut ActionBarActivity membuat sebuah instance tunggal dari Helper ini bertindak sebagai pabrik sendiri yang mengembalikan implementasi yang berbeda untuk tiga segmen APIS, ia mengembalikan
Bagian yang paling menarik adalah di ActionbarBaseHelper , karena memiliki kode paling penting, saya sarankan Anda memahami kelas ini dan Anda akan mendapatkan seluruh contoh.
Action Bar Sherlock
Yah, ini memang sulit, pertama, karena saya bukan penulis, mungkin Jake dapat menjelaskan lebih lanjut tentang ini, tetapi saya akan mencobanya.
Sama seperti compat Sherlock membuat implementasi yang berbeda tetapi satu untuk "Compat" dan yang lainnya adalah Asli. Ini memaksa Anda untuk memperluas dari SherlockActivity atau dari SherlockFragmentActivity, karena dua kelas dasar ini memiliki metode untuk mengirimkan ActionBar.
Ini adalah proyek besar dan kompleks, yang tidak dapat dijelaskan dalam satu posting. Sarankan Anda menggali sekitar Sherlock Github, coba lihat dan seperti yang dikatakan Jeff Atwood
sumber
Saya sangat percaya bahwa Anda harus menggunakan
ActionBarCompat
untuk semua proyek baru yang ingin mendukung perangkat yang lebih lama.Mungkin juga masuk akal untuk melakukan migrasi proyek yang ada. Jadi bacalah terus untuk mengetahui mengapa Anda harus bermigrasi atau menggunakan ActionBarCompat segera dan cara memigrasi proyek yang ada.
Mengapa Anda lebih suka ActionBarCompat daripada ActionBarSherlock?
Ada banyak alasan mengapa Anda harus memilih ActionbarCompat daripada ActionbarSherlock.
Pertama-tama proyek ini oleh Google, adalah bagian dari Perpustakaan Dukungan dan dengan demikian kemungkinan akan mendukung hal-hal terkait Action Bar baru pada saat yang sama Google merilisnya dengan stok Android.
Alasan bagus lainnya adalah mendukung
Navigation Drawer pattern
tepat di luar kotak, sementara ActionBarSherlock tidak. Jadi, jika Anda ingin menambahkan laci ini ke proyek / aplikasi yang ada, Anda harus bermigrasi.Yang terakhir dan Penting adalah, bahwa pencipta ActionBarSherlock, Jake Wharton, mengumumkan di Google+ bahwa pengembangan lebih lanjut dari ActionBarSherlock telah dihentikan. ActionBarSherlock 4.4 adalah rilis terakhir dan mungkin mendapatkan perbaikan bug - tetapi tidak akan ada fitur baru: Jadi, jika fungsionalitas baru termasuk dalam actionbar Anda mungkin tidak mengikutinya dengan actionbarsherlock.
sumber
Mungkin kita harus memperbarui jawabannya karena google menerbitkan dukungan Actionbar resmi sejak API18 ?
blok di bawah ini dari blog resmi tentang dua perpustakaan ini:
sumber