В чем разница между ActionBarSherlock и Action Bar Compatibility
Несколько дней назад Google только что выпустил ActionBar Compatibility, что меня так запутало. Это совместимость панели действий работает так же, как ActionBarSherlock и кодировка та же?
Пример. Поддерживает ли значок приложения навигацию «вверх» или ActionBar.Tab в разделе «Совместимость панели действий»?
Ответы:
ActionBarSherlock предоставляет вашему приложению панель действий независимо от того, на какой версии Android-приложения выполняется ваше приложение. Совместимость панели действий дает вам панель действий, только если устройство, на котором вы работаете, имеет уровень API 3.0 или выше.
* Обратите внимание, что если устройство, на котором вы работаете, не 3.0 или выше, ActionBarSherlock будет использовать свою собственную реализацию панели действий, а не нативную.
--РЕДАКТИРОВАТЬ--
Похоже, что все изменилось, и между ActionBarSherlock и Action Bar Compatibility больше нет никакой разницы. Пожалуйста, прочитайте комментарии ниже для деталей.
--РЕДАКТИРОВАТЬ--
После использования обоих сейчас я могу сказать, что на самом деле я предпочитаю ActionBarSherlock совместимости с панелью действий. ActionBarSherlock действительно прост и приятен в использовании.
--EDIT-- Как уже упоминалось в LOG_TAG, в библиотеке поддержки Android теперь поддерживается панель действий. У меня еще не было возможности использовать его, но я думаю, что это лучший вариант.
источник
why
иhow
использовать новый ActionBarCompat API, android-developers.blogspot.in/2013/08/…ActionBarSherlock против ActionBarCompat:
Я просто хочу поместить немного разницы в код между ActionBarSherlock и ActionBarCompat Lib
Мы можем перенести некоторые приложения из ActionBarSherlock в ActionBarCompat:
шаги:
Импортировать проект AppCompat .
Заменить
SherlockFragmentActivity
наActionBarActivity
.Заменить
SherlockFragment
наFragment
.Изменение
Menu
,MenuItem
иgetSupportMenuInflater()
ссылки. Изменить способ, которым вы получаете Action Views.mSearchView = (SearchView)MenuItemCompat.getActionView(mSearchItem)
Для получения дополнительной информации, пожалуйста, обратитесь к этим слайдам + NickButcher (Google)
Благодаря источникам: http://gmariotti.blogspot.in/2013/07/actionbarsherlock-vs-actionbarcompat.html http://antonioleiva.com/actionbarcompat-migrating-actionbarsherlock/
Не забудьте прочитать этот developer.android для получения дополнительной информации о ABC!
Примечание. Настроить его для модульных тестов так же, как ABS, к сожалению, невозможно с помощью библиотеки поддержки.
Вывод:
Кредиты: Габриэле Мариотти
источник
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
и не обязательно должно быть библиотечным проектом.Просто завершаю то, что @Kurtis Nusbaum практическим примером.
ОБНОВЛЕНИЕ: как сказал @ rudy-s, с новейшей библиотекой поддержки Android (API 18), я увидел, что у них уже есть встроенная поддержка панели действий (называется класс ActionBarCompat).
Я построил два простых приложения, чтобы показать визуальную разницу между ActionBarSherlock и ActionBar Compatibility. Смотрите сравнительные изображения:
Теперь внешний вид при нажатии кнопки меню:
Как видите, изображения только усиливают сказанное. Совместимость панели действий дает вам панель действий, только если устройство, на котором вы работаете, имеет уровень API 3.0 или выше. Пока Шерлок носит более общий характер.
Ниже вы можете увидеть исходный код приложения.
Файл меню XML такой же:
Совместимость деятельности:
Деятельность Шерлока:
В приложении sherlock был необходим дополнительный конфиг:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
ОБНОВЛЕНИЕ: как сказал @ rudy-s, с новейшей библиотекой поддержки Android (API 18), я увидел, что у них уже есть встроенная поддержка панели действий (называется класс ActionBarCompat).
источник
Actionbar Sherlock гораздо более продвинутый и более амбициозный, чем простой проект совместимости Actionbar.
Совместимость панели действий можно считать «образцом» или хорошей отправной точкой, если вы хотите просто ударить панель действий поверх вашего приложения.
ActionBarSherlock основывается на библиотеке совместимости и предоставляет вам (как пример совместимости панели действий) панель действий на устройствах до версии 3.0. Кроме того, он имеет дополнительные функции, отсутствующие в коде ActionBar Compat. Это включает в себя такие функции, как, но не ограничиваясь
Единственный недостаток, который я вижу при использовании ActionbarSherlock, это то, что вы привязываетесь к этой библиотеке. Если по какой-то причине он исчезнет в ближайшем будущем, вам придется поддерживать его самостоятельно (например, если не будет реализована реализация Jellybean). Это хлопотно (не большая проблема), так как все ваши фрагменты расширяют SherlockFragemnt и все ваши действия. SherlockActivity.
источник
Ну, реализация @Jake идет намного дальше, чем то, что делает Actionbar Compat, а точнее, Actionbar Compat - это просто базовый пример того, как вы можете поддерживать все приложения с помощью псевдо-actionbar для выпусков, предшествующих Honeycomb (API 13). Хотя их целью является одна и та же кросс-совместимая панель действий, у них другой подход.
ActionbarCompat Aproach
Эта реализация не использует библиотеку поддержки Android совместимости, вместо этого она создает базовый класс с именем ActionBarActivity, создает один экземпляр помощника, этот помощник действует как сама фабрика, которая возвращает другую реализацию для трех сегментов APIS и возвращает
Самая интересная часть в ActionbarBaseHelper , потому что он имеет самый важный код, я предлагаю вам понять этот класс, и вы получите весь пример.
Экшн-бар Шерлок
Ну, это сложно, потому что, я не автор, может, Джейк может объяснить это дальше, но я попробую.
Подобно тому, как compat Sherlock делает другую реализацию, но один для «Compat», а другой - «Native». Это заставляет вас расширяться либо из SherlockActivity, либо из SherlockFragmentActivity, потому что у этих двух базовых классов есть метод для отправки ActionBar.
Это большой и сложный проект, который невозможно объяснить одним постом. Предлагаю вам покопаться в репозитории Шерлока Гитхуба , взгляните и как говорит Джефф Этвуд
источник
Я твердо верю, что вы должны использовать
ActionBarCompat
для всех новых проектов, которые хотят поддерживать старые устройства.Также может иметь смысл перенести существующие проекты. Так что читайте дальше, чтобы узнать, почему вы должны мигрировать или использовать ActionBarCompat прямо сейчас, и как переносить существующие проекты.
Почему вы должны предпочесть ActionBarCompat, а не ActionBarSherlock?
Есть много причин, почему вы должны предпочесть ActionbarCompat, а не ActionbarSherlock.
Прежде всего, этот проект от Google, является частью библиотеки поддержки и, таким образом, вероятно, будет поддерживать новые вещи, связанные с панелью действий, в то же время Google выпускает их со стандартным Android.
Еще одна веская причина в том, что он поддерживает
Navigation Drawer pattern
сразу из коробки, в то время как ActionBarSherlock нет. Таким образом, если вы хотите добавить этот ящик в существующий проект / приложение, вы должны выполнить миграцию.Последнее и важное, что создатель ActionBarSherlock Джейк Уортон объявил в Google+, что дальнейшее развитие ActionBarSherlock остановлено. ActionBarSherlock 4.4 является последним выпуском и может содержать исправления ошибок, но новых функций не будет: поэтому, если новые функции включены в панель действий, вы можете не справиться с ней с помощью actionbarsherlock.
источник
Может быть, мы должны обновить ответ, потому что Google опубликовал официальную поддержку Actionbar начиная с API18 ?
блок ниже из официального блога об этих двух библиотеках:
источник