AppCompatActivity与ActionBarActivity相比有哪些改进?

android.support.v7.app.AppCompatActivity昨天被添加到最新的v7支持库中作为新function。

据说, ActionBarActivity已被弃用,以支持新的AppCompatActivity ,而AppCompatActivity是使用支持库操作栏function的活动的基类。 那么,通过ActionBarActivity AppCompatActivity新function是什么? AppCompatActivityActionBarActivity有什么增强function? AppCompatActivity哪些优点? 有人可以提供一些样品吗?

任何提示都表示赞赏。 并提前感谢。

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

与此同时,我看到一篇博客文章指出:“ 这不是从ActionBarActivityAppCompatActivity的重命名, AppCompatActivity的内部逻辑可以通过AppCompatDelegate ”,所以AppCompatDelegate的“ 内部逻辑 ”是什么? AppCompatDelegate可以做什么? 有人可以发表一些关于这个的代码吗?

正如Chris所写, ActionBarActivity新版本(扩展了AppCompatActivity类的版本)是使用向后兼容类的一个安全方法。 它的弃用只是提示您直接使用新的AppCompatActivityAppCompatActivity是一个新的,更通用的实现,它在内部使用AppCompatDelegate类。

如果你开始一个新的开发,那么你应该马上使用新的AppCompatActivity类。 如果您有机会更新您的应用程序,则也可以将新的活动replace为不推荐使用的ActionBarActivity 。 否则,你可以停留在不赞成的活动,并没有任何行为差异。

关于AppCompatDelegate ,它允许你在一个activity中有新的有色小部件,它既不是AppCompatActivity也不是ActionBarActivity

例如,您从外部库inheritance活动,而该外部库不会AppCompatActivityinheritance,但您希望此活动具有着色的材料小部件(视图)。 要做到这一点,你需要在你的活动中创build一个AppCompatDelegate的实例,覆盖像addContentView()setContentView()等活动的方法(请参阅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

自从android支持appcompat库发布以来, AppCompatActivity被引入了Android-SDK

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

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

API级别7或更高版本上运行时,可以通过为活动扩展此类并将活动主题设置为Theme.AppCompat或类似主题来将ActionBar添加到您的活动。

至于支持v7的appcompat库,它增加了对Action Bar用户界面devise模式的支持。 该库包含对材料devise用户界面实现的支持。

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

  • ActionBar – 提供操作栏用户界面模式的实现。
  • AppCompatActivity – 添加一个应用程序活动类,可用作使用支持库操作栏实现的活动的基类。
  • AppCompatDialog – 添加一个对话框类,可用作AppCompat主题对话框的基类。
  • ShareActionProvider – 添加对可包含在操作栏中的标准化共享操作(例如电子邮件或发布到社交应用程序)的支持。

下载Android支持库之后 ,该库位于/ extras / android / support / v7 / appcompat /目录中。

以前进入AppCompat的唯一入口是通过现在弃用的ActionBarActivity类。 不幸的是,这迫使你使用一个设置的活动层次结构,使得使用PreferenceActivity变得不可能。

请参阅克里斯· 巴恩斯的支持库-v22-1-0了解更多信息

Android支持库22.1的最新版本弃用ActionBarActivity来支持AppCompatActivity ,它承诺为API Level 7及更高版本的所有设备带来一个统一的ActionBar