Что такое повышение AppCompatActivity над ActionBarActivity?


android.support.v7.app.AppCompatActivity был добавлен в последнюю библиотеку поддержки v7 в качестве новой функции вчера.

говорят, что ActionBarActivity был осужден в пользу нового AppCompatActivity и AppCompatActivity является базовым классом для действий, использующих функции панели действий библиотеки поддержки. Итак, какие же новые возможности AppCompatActivity over ActionBarActivity? Какие улучшения делают AppCompatActivity над ActionBarActivity? А в чем преимущества AppCompatActivity? Может кто-нибудь поставить несколько образцов?

любые советы оцененный. И заранее спасибо.

PS: что меня больше всего удивило это AppCompatActivity, который android.support.v4.app.FragmentActivity является прямым родительским классом ActionBarActivity! Я имею в виду на самом деле сейчас, что ActionBarActivity может сделать все, что AppCompatActivity может сделать, почему Android вытеснил последнее?

между тем, я видел сообщение в блоге, в котором говорится: "это не переименование из ActionBarActivity to AppCompatActivity внутренняя логика AppCompat через AppCompatDelegate", так что "внутренняя логика" из AppCompat? Что может AppCompatDelegate делать? Может кто-нибудь разместить некоторые коды об этом?

6 160

6 ответов:

как писал Крис, новая устаревшая версия ActionBarActivity (тот, что удлиняет AppCompatActivity класс) является безопасным для использования обратной совместимости класса. Его устаревание - это просто подсказка для вас, прося использовать new AppCompatActivity напрямую, а не. AppCompatActivity - это новая, более общая реализация, которая использует AppCompatDelegate класс внутренне.

если вы начинаете новую разработку, то вы должны использовать новый AppCompatActivity класс сразу. Если у вас есть возможность обновить приложение, а затем заменить устаревшие ActionBarActivity новой деятельности. В противном случае вы можете остаться с устаревшим активности и не будет никакой разницы в поведении вообще.

о AppCompatDelegate, это позволяет вам иметь новые тонированные виджеты в деятельности, которая не является ни AppCompatActivity, ни ActionBarActivity.

например, вы наследуете действие из внешней библиотеки, которая, в свою очередь, делает не наследовать от AppCompatActivity но вы хотите, чтобы это действие имело виджеты тонированных материалов (представления). Сделать его бывает вам нужно создать экземпляр AppCompatDelegate внутри вашей деятельности, переопределить методы этой деятельности, как addContentView(),setContentView() etc. (см. AppCompatDelegate javadoc для полного списка методов), а внутри этих переопределенных методов переадресовывает вызовы на внутренний AppCompatDelegate экземпляра. AppCompatDelegate и ваш "старомодный" активность "материализацию".

это в основном смена имени: ActionBarActivity на самом деле не описывает все, что он сейчас делает. Вы можете безопасно использовать ActionBarActivity Если вы хотите. Думайте об этом как о символической ссылке.

библиотека поддержки AppCompat началась со скромных, но важных начинаний: Единой последовательной панели действий для всех устройств API 7 и выше. В редакцию 21, Он взял на себя новую ответственность: приведение цветовой палитры материала, тонировка виджета, поддержка панели инструментов и многое другое для всех устройств API 7+. С этим, имя ActionBarActivity на самом деле не охватывает весь объем того, что это действительно сделал.

http://android-developers.blogspot.it/2015/04/android-support-library-221.html

AppCompatActivity был введен в Android-SDK С момента выхода поддержка android библиотека appcompat.

AppCompatActivity является прямым дочерним классом FragmentActivity поддержки v4 и прямого родительского класса ActionBarActivity.

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

вы можете добавить ActionBar к вашей деятельности при запуске на уровень API 7 или выше путем расширения этого класса для вашей деятельности и установки темы деятельности тема.Совместимости приложений или похожие темы.

Что касается поддержки библиотеки V7 appcompat, она добавляет поддержку Действие-Бар шаблон дизайна пользовательского интерфейса. Эта библиотека включает в себя поддержку материал дизайн реализации пользовательского интерфейса.

вот несколько ключевых классов, включенных в V7 appcompat библиотека:

  • ActionBar - обеспечивает реализацию панели действий пользователей шаблон интерфейса.
  • AppCompatActivity - добавляет класс активности приложения, который может быть используется в качестве базового класса для действий, использующих Библиотека Поддержки панель действий реализация.
  • AppCompatDialog - добавляет диалоговый класс, который можно использовать в качестве базового класс для AppCompat тематические диалоги.
  • ShareActionProvider - добавлена поддержка стандартизированного совместное действие (например, электронная почта или публикация в социальных приложениях) , которые могут быть входит в панель действий.

скачать Библиотеки Поддержки Android эта библиотека находится в / дополнительно / android / поддержка / v7 / appcompat/.

ранее единственная точка входа в AppCompat был через теперь устарел ActionBarActivity класса. К сожалению, это вынудило вас использовать иерархию действий набора, которая сделала такие вещи, как использование PreferenceActivity невозможно.

смотрите Криса Бэйнса поддержка библиотек-v22-1-0 дополнительная информация

последний выпуск библиотеки поддержки android, 22.1, осуждает ActionBarActivity в пользу AppCompatActivity, который обещает принести один последовательный ActionBar для всех устройств, начиная с уровня API 7 и выше