什么是 AppCompatActivity 对 ActionBarActivity 的增强?

昨天,android.support.v7.app.AppCompatActivity作为一个新特性被添加到最新的 v7支持库中。

据说,ActionBarActivity已经被弃用,转而支持新的 AppCompatActivity,而且 AppCompatActivity是使用支持库操作栏特性的活动的基类。那么,AppCompatActivity相对于 ActionBarActivity有什么新的特征呢?AppCompatActivityActionBarActivity有哪些增强?AppCompatActivity的优点是什么?有人能提供一些样品吗?

PS: 最让我吃惊的是,从 android.support.v4.app.FragmentActivity延伸出来的 AppCompatActivityActionBarActivity的直接父类!我的意思是现在 ActionBarActivity可以做任何 AppCompatActivity可以做的事情,为什么 Android 推出了后者?

与此同时,我看到一篇博文说: “ 它不是从 ABC0到 ABC1的重命名,ABC2的内部逻辑可以通过 AppCompatDelegate获得”,那么 AppCompat的“ 内部逻辑”是什么呢?AppCompatDelegate能做什么?有人能发布一些关于这个的代码吗?

95082 次浏览

以前进入 AppCompat的唯一入口点是通过现在已经废弃的 ActionBarActivity类。不幸的是,这迫使您使用一套活动层次结构,这使得像使用 PreferenceActivity这样的事情变得不可能。

查看克里斯・贝恩斯的 Support-library-v22-1-0了解更多信息

这主要是一个名称的改变: ActionBarActivity并不真正描述它现在所做的一切。如果您愿意,可以安全地使用 ActionBarActivity。把它想象成一个符号链接。

最新发布的 android 支持库22.1不支持 ActionBarActivity而支持 AppCompatActivity,它承诺为所有 API Level 7及以上的设备提供一个统一的 ActionBar

正如克里斯所写的那样,新的不推荐的 ActionBarActivity版本(扩展了 AppCompatActivity类的版本)可以安全地使用向下兼容类。它的废弃只是一个提示,提示您要求直接使用新的 AppCompatActivityAppCompatActivity是一个新的、更通用的实现,它在内部使用 AppCompatDelegate类。

如果您开始一个新的开发,那么您应该立即使用新的 AppCompatActivity类。如果您有机会更新您的应用程序,然后取代已废弃的 ActionBarActivity的新活动以及。否则,你可以继续从事不被推崇的活动,而且行为上也不会有任何不同。

关于 AppCompatDelegate,它允许您在活动中使用新的有色小部件,它既不是 AppCompatActivity也不是 ActionBarActivity

例如,您从外部库继承了一个活动,而 没有又从 AppCompatActivity继承了这个活动,但是您希望这个活动具有有色材料小部件(视图)。为了实现它,你需要在你的活动中创建一个 AppCompatDelegate的实例,覆盖那个活动的方法,比如 addContentView()setContentView()等等(参见 AppCompatDelegate javadoc 获得完整的方法列表) ,在那些覆盖的方法中将对内部 AppCompatDelegate实例的调用转发。AppCompatDelegate会完成剩下的工作,你的“老式”活动将会“物化”。

机器人支持应用程序库发布以来,AppCompatActivity被引入到 Android-SDK中。

AppCompatActivity是 support v4的 FragmentActivity的直接子类和 ActionBarActivity的直接父类。

AppCompatActivity是使用 支持库操作栏特性的活动的基类。

空气污染指数级别7或以上上运行时,您可以通过为您的活动扩展这个类并将活动主题设置为 主题,应用程序或类似的主题来向您的活动添加 ActionBar

至于支持 v7 appcompat 库,它添加了对 动作酒吧用户界面设计模式的支持。此库包括对 材料设计用户界面实现的支持。

下面是 v7 appcompat 库中包含的一些关键类:

  • ActionBar-提供操作栏用户的实现 界面模式。
  • AppCompatActivity-添加一个应用程序活动类,该类可以是 用作使用 < strong > Support Library 的活动的基类 操作栏 实现
  • AppCompatDialog-添加可用作基类的对话框类 AppCompat主题对话框的类。
  • ShareActionProvider-添加对标准化共享操作的支持 (例如电子邮件或发布到社交应用程序) 包括在一个动作酒吧。

下载 Android 支持库之后,此库位于 /额外的/android/support/v7/appcompat/目录中。

AppCompat 支持库从简陋但重要的起点开始: 针对所有 API 7及更高设备的单一一致的 Action Bar。在修订版21中,它承担了新的责任: 为所有 API 7 + 设备带来材质调色板、小部件着色、工具栏支持等。就这样,ActionBarActivity 这个名字并没有真正涵盖它的全部功能

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