Реализация панели действий: ABSherlock или ABCompat?

В настоящее время приложение имеет таблицы и панель, сделанную на заказ (предыдущим парнем) из фрагментов, чтобы скопировать дизайн Cat Apple.

Я хочу перейти к панели действий Android, чтобы обеспечить взаимодействие с Android и обычное поведение.

Должен ли я внедрить Action Bar Sherlock или Action Bar Compat?

Про АБС:

  • Много документации
  • Вкладки панели действий хорошо известны (это то, что мне нужно сделать)
  • О теме Холо? ABS отлично поддерживает это, как работает ABCompat?

Pro ABCompat:

  • Поддерживается Google (лучше в долгосрочной перспективе?)
  • Лучшее соединение с навигационным ящиком (но я не буду его использовать)
  • Нет внешних зависимостей в пути сборки Java

Какие другие аргументы помогают принять решение? Какой выбрать?

С моей точки зрения, если мне удастся создать панель действий с фиксированными вкладками, совместимость с панелью действий — лучший выбор (но не намного).

Спасибо за помощь мне! (даже предоставляя аргументы, которые я пропустил)


person Poutrathor    schedule 31.07.2013    source источник


Ответы (3)


Основная причина, которая заставила меня перейти на ActionBarCompat, — это появление меню на устройствах с андроидом ‹= 2.3. С ActionBarSherlock меню выглядит очень некрасиво, с дефолтным меню устройства. С ActionBarCompat меню отображается так же, как и при открытии его на устройствах с Android >= 4.0 и аппаратной клавишей меню.

Но имейте в виду, что в ActionBarCompat есть некоторые ошибки, которые еще предстоит исправить. Я имею дело с этой ошибкой:

SearchView занимает все пространство в новом ActionBarCompat

ОБНОВИТЬ:

Еще одна ошибка:

https://code.google.com/p/android/issues/detail?id=58321&thanks=58321&ts=1375277660

ОБНОВИТЬ:

Я создал исправленную версию ActionBarCompat, чтобы решить проблему с ActionMode. Глянь сюда:

ActionMode создается дважды с ActionBarCompat r18

person Fernando Camargo    schedule 31.07.2013
comment
Хорошо, спасибо за информацию! Я уже видел вашу проблему с ошибкой (так как я искал первый отзыв на ABCompat) - person Poutrathor; 31.07.2013
comment
Я только что нашел еще одну ошибку. Что ж, мой совет: не будьте первопроходцем, как я. Каждый день я нахожу новую ошибку, которая ломает мое приложение. Единственная причина, по которой я не вернусь к ActionBarSherlock, — это меню для старых версий. - person Fernando Camargo; 31.07.2013
comment
не будь первопроходцем, я должен реализовать actionBar сейчас (скоро заканчиваю стажировку). Через какое время ABSherlock начнет слабеть из-за низкой поддержки? Прямо сейчас в моем приложении нет настоящей панели действий. Считаете ли вы, что я должен позволить ActionBarCompat созреть и перейти на ABS, или, поскольку речь идет не о миграции, лучше перейти на ABCompat? - person Poutrathor; 31.07.2013
comment
Посмотрите, было очень легко перейти на ActionBarCompat. Во время миграции не так уж много нужно изменить. Итак, если у вас нет проблем с тем, как меню отображается на старом Android, и вы не хотите бороться с ошибками, вам следует использовать ActionBarSherlock и мигрировать в будущем. Я опубликовал некоторые проблемы, с которыми столкнулся при переходе на ActionBarcompat, здесь: stackoverflow.com/a/17887573/1140713 - person Fernando Camargo; 31.07.2013

Причины, по которым я перенес свое приложение с ABS на Action Bar Compat, были следующими:

  1. У меня есть только очень простая реализация вкладок панели действий, и я вижу, что будет просто перенести

  2. Я предпочитаю документацию Google - она ​​понятнее и полнее

  3. Сопровождение программного обеспечения будет проще и менее подвержено ошибкам, потому что теперь у меня нет внешних зависимостей.

  4. У меня возникла проблема с ABS, из-за которой я хотел обработать изменение ориентации (но вы не можете из-за того, как ABS подключается к Android).

  5. Я не видел никаких заявлений от кого-либо, связанного с ABS, об их долгосрочных планах в отношении ABS. Так что я не уверен, что они продолжат его поддерживать. Я могу ошибаться - но я ничего не видел.

  6. Производительность на самом деле не проблема для меня, но я не понимаю, почему «родная» реализация Google будет работать медленнее, чем ABS, и я подозреваю, что она может работать лучше.

Это только мои личные впечатления.

person IanB    schedule 31.07.2013
comment
Спасибо! Пища для размышлений! - person Poutrathor; 31.07.2013

Я думаю, что ActionBarSherlock был блестящей работой и отличным сервисом для Android-разработчиков. (Кстати, у меня нет акций Джейка Уортона, его разработчика.) Google сделал ему наилучший комплимент, включив в версию v7 ​​то, что делает по сути то же самое и по существу таким же образом (насколько я могу судить). библиотека поддержки.

Но теперь, когда эта функциональность официально поддерживается, применяются некоторые стандартные аргументы в пользу выбора.

ActionBarSherlock — это сторонняя зависимость, которая представляет собой риск с точки зрения постоянной поддержки. Если только он не делает что-то, что вам действительно нужно, чего не делает ActionBarCompat, или у последнего есть ошибка, которую вы не можете обойти или дождаться исправления, аргументов в пользу того, чтобы придерживаться первого, очень мало.

Недавно я перешел с ActionBarSherlock на ActionBarCompat и обнаружил только одну или две незначительные проблемы, основная из которых заключалась в том, что потребовалась незначительная корректировка стандартных изображений с 9 патчами, используемых для фона индикатора вкладки панели действий, чтобы обеспечить стандартное поведение вкладки. на более ранних версиях Android, в моем случае 2.2 == уровень API 8 == Froyo. (В частности, я настроил вертикальные растягиваемые области так, чтобы они не примыкали ни к верхнему краю, ни к цветной полосе индикатора внизу изображения.)

person JulianSymes    schedule 06.08.2013
comment
да, я полностью согласен с ActionBarSherlock. Я буду иметь в виду ваши проблемы, если я столкнусь с подобными. - person Poutrathor; 07.08.2013