AppCompatActivity 相对于 ActionBarActivity 有何增强?
What's the enhancement of AppCompatActivity over ActionBarActivity?
android.support.v7.app.AppCompatActivity
已于昨天作为新功能添加到最新的 v7 支持库中。
据说 ActionBarActivity
已被弃用,取而代之的是新的 AppCompatActivity
并且 AppCompatActivity
是使用支持库操作栏的活动的基础 class特征。那么,AppCompatActivity
比 ActionBarActivity
有哪些新功能? AppCompatActivity
比 ActionBarActivity
有哪些改进? AppCompatActivity
的优点是什么?有人可以提供一些样品吗?
PS:最让我吃惊的是android.support.v4.app.FragmentActivity
扩展出来的AppCompatActivity
是直接父class ActionBarActivity
!我的意思是现在 ActionBarActivity
可以做 AppCompatActivity
可以做的任何事情,为什么 Android 会推出后者?
同时,我看到一篇博客 post 指出:“这不是从 ActionBarActivity
到 AppCompatActivity
的重命名,[=26= 的内部逻辑] 可以通过 AppCompatDelegate
” 获得,那么 AppCompat
的“ 内部逻辑 ” 是什么? AppCompatDelegate
可以做什么?有人可以 post 一些关于这个的代码吗?
以前进入 AppCompat
的唯一入口是通过现已弃用的 ActionBarActivity
class。不幸的是,这迫使您使用一组 Activity 层次结构,这使得使用 PreferenceActivity
之类的事情变得不可能。
查看克里斯·贝恩斯的 support-libraries-v22-1-0 了解更多信息
主要是名称更改:ActionBarActivity
并没有真正描述它现在所做的一切。如果您愿意,可以安全地使用 ActionBarActivity
。把它想象成一个符号链接。
android 支持库的最新版本 22.1 弃用了 ActionBarActivity
,取而代之的是 AppCompatActivity
,它承诺为所有设备带来单一一致的 ActionBar
从 API 7 级及以上
开始
正如 Chris 所写,ActionBarActivity
的新弃用版本(扩展 AppCompatActivity
class 的版本)可以安全地向后兼容 class。它的弃用只是提示您要求直接使用 new AppCompatActivity
。 AppCompatActivity
是一个新的、更通用的实现,它在内部使用 AppCompatDelegate
class。
如果您开始新的开发,那么您应该立即使用新的 AppCompatActivity
class。如果您有机会更新您的应用程序,请将弃用的 ActionBarActivity
也替换为新的 activity。否则,您可以继续使用已弃用的 activity,并且在行为上完全没有区别。
关于 AppCompatDelegate
,它允许您在 activity 中添加新的有色小部件,这既不是 AppCompatActivity
也不是 ActionBarActivity
。
例如,您从外部库继承了一个 activity,而外部库又 而不是 从 AppCompatActivity
继承,但您想要这个 activity 有有色材质小部件(视图)。要实现它,您需要在 activity 中创建 AppCompatDelegate
的实例,覆盖 activity 的方法,如 addContentView()
、setContentView()
等(参见 AppCompatDelegate
javadoc 以获得完整的方法列表),并且在那些被覆盖的方法内部将调用转发给内部 AppCompatDelegate
实例。 AppCompatDelegate
将完成剩下的工作,您的 "old-fashion" activity 将是 "materialized".
AppCompatActivity
被引入Android-SDK自android发布以来支持appcompat库.
AppCompatActivity
是支持 v4 的 FragmentActivity
的直接子 class 和 ActionBarActivity
的直接父 class。
AppCompatActivity
是使用 支持库操作栏 功能的活动的基础 class。
当 运行 达到 API 7 级或更高 时,您可以将 ActionBar
添加到您的 activity 通过扩展此class 为您的 activity 并将 activity 主题设置为 Theme.AppCompat 或类似的主题。
至于支持 v7 appcompat 库,它增加了对 Action Bar 用户界面设计模式的支持。该库包括对 material 设计 用户界面实现的支持。
以下是 v7 appcompat 库中包含的一些关键 classes:
ActionBar
- 提供用户操作栏的实现
接口模式。
AppCompatActivity
- 添加一个应用程序 activity class
用作使用 支持库的活动的基础 class
操作栏 实施。
AppCompatDialog
- 添加一个可以用作基础的对话框 class
class AppCompat 主题对话框。
ShareActionProvider
- 添加对标准化共享操作的支持
(例如电子邮件或发布到社交应用程序)可以是
包含在操作栏中。
下载 Android 支持库后 ,该库位于 /extras/android/support/v7/appcompat/ 目录中.
The AppCompat Support Library started with humble, but important beginnings: a single consistent Action Bar for all API 7 and higher devices. In revision 21, it took on new responsibility: bringing material color palette, widget tinting, Toolbar support, and more to all API 7+ devices. With that, the name ActionBarActivity didn’t really cover the full scope of what it really did.
http://android-developers.blogspot.it/2015/04/android-support-library-221.html
android.support.v7.app.AppCompatActivity
已于昨天作为新功能添加到最新的 v7 支持库中。
据说 ActionBarActivity
已被弃用,取而代之的是新的 AppCompatActivity
并且 AppCompatActivity
是使用支持库操作栏的活动的基础 class特征。那么,AppCompatActivity
比 ActionBarActivity
有哪些新功能? AppCompatActivity
比 ActionBarActivity
有哪些改进? AppCompatActivity
的优点是什么?有人可以提供一些样品吗?
PS:最让我吃惊的是android.support.v4.app.FragmentActivity
扩展出来的AppCompatActivity
是直接父class ActionBarActivity
!我的意思是现在 ActionBarActivity
可以做 AppCompatActivity
可以做的任何事情,为什么 Android 会推出后者?
同时,我看到一篇博客 post 指出:“这不是从 ActionBarActivity
到 AppCompatActivity
的重命名,[=26= 的内部逻辑] 可以通过 AppCompatDelegate
” 获得,那么 AppCompat
的“ 内部逻辑 ” 是什么? AppCompatDelegate
可以做什么?有人可以 post 一些关于这个的代码吗?
以前进入 AppCompat
的唯一入口是通过现已弃用的 ActionBarActivity
class。不幸的是,这迫使您使用一组 Activity 层次结构,这使得使用 PreferenceActivity
之类的事情变得不可能。
查看克里斯·贝恩斯的 support-libraries-v22-1-0 了解更多信息
主要是名称更改:ActionBarActivity
并没有真正描述它现在所做的一切。如果您愿意,可以安全地使用 ActionBarActivity
。把它想象成一个符号链接。
android 支持库的最新版本 22.1 弃用了 ActionBarActivity
,取而代之的是 AppCompatActivity
,它承诺为所有设备带来单一一致的 ActionBar
从 API 7 级及以上
正如 Chris 所写,ActionBarActivity
的新弃用版本(扩展 AppCompatActivity
class 的版本)可以安全地向后兼容 class。它的弃用只是提示您要求直接使用 new AppCompatActivity
。 AppCompatActivity
是一个新的、更通用的实现,它在内部使用 AppCompatDelegate
class。
如果您开始新的开发,那么您应该立即使用新的 AppCompatActivity
class。如果您有机会更新您的应用程序,请将弃用的 ActionBarActivity
也替换为新的 activity。否则,您可以继续使用已弃用的 activity,并且在行为上完全没有区别。
关于 AppCompatDelegate
,它允许您在 activity 中添加新的有色小部件,这既不是 AppCompatActivity
也不是 ActionBarActivity
。
例如,您从外部库继承了一个 activity,而外部库又 而不是 从 AppCompatActivity
继承,但您想要这个 activity 有有色材质小部件(视图)。要实现它,您需要在 activity 中创建 AppCompatDelegate
的实例,覆盖 activity 的方法,如 addContentView()
、setContentView()
等(参见 AppCompatDelegate
javadoc 以获得完整的方法列表),并且在那些被覆盖的方法内部将调用转发给内部 AppCompatDelegate
实例。 AppCompatDelegate
将完成剩下的工作,您的 "old-fashion" activity 将是 "materialized".
AppCompatActivity
被引入Android-SDK自android发布以来支持appcompat库.
AppCompatActivity
是支持 v4 的 FragmentActivity
的直接子 class 和 ActionBarActivity
的直接父 class。
AppCompatActivity
是使用 支持库操作栏 功能的活动的基础 class。
当 运行 达到 API 7 级或更高 时,您可以将 ActionBar
添加到您的 activity 通过扩展此class 为您的 activity 并将 activity 主题设置为 Theme.AppCompat 或类似的主题。
至于支持 v7 appcompat 库,它增加了对 Action Bar 用户界面设计模式的支持。该库包括对 material 设计 用户界面实现的支持。
以下是 v7 appcompat 库中包含的一些关键 classes:
ActionBar
- 提供用户操作栏的实现 接口模式。AppCompatActivity
- 添加一个应用程序 activity class 用作使用 支持库的活动的基础 class 操作栏 实施。AppCompatDialog
- 添加一个可以用作基础的对话框 class class AppCompat 主题对话框。ShareActionProvider
- 添加对标准化共享操作的支持 (例如电子邮件或发布到社交应用程序)可以是 包含在操作栏中。
下载 Android 支持库后 ,该库位于 /extras/android/support/v7/appcompat/ 目录中.
The AppCompat Support Library started with humble, but important beginnings: a single consistent Action Bar for all API 7 and higher devices. In revision 21, it took on new responsibility: bringing material color palette, widget tinting, Toolbar support, and more to all API 7+ devices. With that, the name ActionBarActivity didn’t really cover the full scope of what it really did.
http://android-developers.blogspot.it/2015/04/android-support-library-221.html