Что такое повышение 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 ответов:
как писал Крис, новая устаревшая версия
ActionBarActivity
(тот, что удлиняетAppCompatActivity
класс) является безопасным для использования обратной совместимости класса. Его устаревание - это просто подсказка для вас, прося использовать newAppCompatActivity
напрямую, а не.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 дополнительная информация