AppCompatActivity与ActionBarActivity相比有哪些改进?
android.support.v7.app.AppCompatActivity
昨天被添加到最新的v7支持库中作为新function。
据说, ActionBarActivity
已被弃用,以支持新的AppCompatActivity
,而AppCompatActivity
是使用支持库操作栏function的活动的基类。 那么,通过ActionBarActivity
AppCompatActivity
新function是什么? AppCompatActivity
对ActionBarActivity
有什么增强function? AppCompatActivity
哪些优点? 有人可以提供一些样品吗?
任何提示都表示赞赏。 并提前感谢。
PS:最让我吃惊的是从android.support.v4.app.FragmentActivity
扩展的AppCompatActivity
是ActionBarActivity
的直接父类! 我的意思是,现在实际上, ActionBarActivity
可以做任何AppCompatActivity
可以做,为什么Android推出了后者?
与此同时,我看到一篇博客文章指出:“ 这不是从ActionBarActivity
到AppCompatActivity
的重命名, AppCompatActivity
的内部逻辑可以通过AppCompatDelegate
”,所以AppCompatDelegate
的“ 内部逻辑 ”是什么? AppCompatDelegate
可以做什么? 有人可以发表一些关于这个的代码吗?
正如Chris所写, ActionBarActivity
新版本(扩展了AppCompatActivity
类的版本)是使用向后兼容类的一个安全方法。 它的弃用只是提示您直接使用新的AppCompatActivity
。 AppCompatActivity
是一个新的,更通用的实现,它在内部使用AppCompatDelegate
类。
如果你开始一个新的开发,那么你应该马上使用新的AppCompatActivity
类。 如果您有机会更新您的应用程序,则也可以将新的活动replace为不推荐使用的ActionBarActivity
。 否则,你可以停留在不赞成的活动,并没有任何行为差异。
关于AppCompatDelegate
,它允许你在一个activity中有新的有色小部件,它既不是AppCompatActivity
也不是ActionBarActivity
。
例如,您从外部库inheritance活动,而该外部库不会从AppCompatActivity
inheritance,但您希望此活动具有着色的材料小部件(视图)。 要做到这一点,你需要在你的活动中创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