Ume*_*ani 69 android android-fragments android-activity android-actionbar
在Android中,扩展Lifecycler Activity,Activity,ActionBarActivity和AppCompactActivity之间的主要区别是什么?这些类在使用方面有何不同?
sta*_*an0 82
ActionBarActivity
为您ActionBar
提供每个API级别> = 7 的s功能Activity
您可以避免向项目中添加其他项目/库,但是您将缺少ActionBar
低于11的api级别编辑:更多细节:
ActionBarActivity
是支持库的一部分.支持库用于在旧平台上提供更新的功能.例如,它ActionBar
是在API 11中引入的,并且是Activity
默认的一部分(实际上取决于主题).相比之下ActionBar
,较旧的平台上没有.因此,支持库添加了一个子类Activity
(ActionBarActivity
),它提供了ActionBar
函数和ui
edit2:2015年4月更新 - 看起来支持库中ActionBarActivity
已弃用revision 22.1.0
.AppCompatActivity
应该用来代替.
edit3: 2017年8月更新 - LifecycleActivity是一个LifecycleOwner但是:
"由于架构组件处于alpha阶段,Fragment和AppCompatActivity类无法实现它(因为我们无法将稳定组件的依赖项添加到不稳定的API中).在生命周期稳定之前,LifecycleActivity和LifecycleFragment类是为了方便而提供的. Lifecycles项目发布,支持库片段和活动将实现LifecycleOwner接口; LifecycleActivity和LifecycleFragment将在那时被弃用."
(从架构组件指南中复制)
如果仔细观察,你会看到这一点
public class ActionBarActivity extends FragmentActivity
implements ActionBarDrawerToggle.DelegateProvider TaskStackBuilder.SupportParentable
Run Code Online (Sandbox Code Playgroud)
在这里,您可以阅读FragmentActivity:http: //developer.android.com/reference/android/support/v4/app/FragmentActivity.html
Activity和FragmentActivity 之间的差异: Activity和FragmentActivity之间的差异
此外,还有一些新的主题样式actionBar ... https://developer.android.com/training/basics/actionbar/styling.html
Actionbar在API级别11中引入.com.android.support:appcompat-v7:+是一个支持库,允许您在应用程序中为在Android 3.0或更低版本上运行的设备安装ActionBar.因此,如果您需要api level 11以下的actionbar,您的Activity需要扩展ActionBarActivity.
如果您的目标是api级别11及以上,那么您不需要扩展ActionBarActivity并引用AppCompat.您可以简单地扩展Activity,默认情况下您将拥有actionabr.
Android Studio默认项目将其自动包含在依赖项中,并扩展ActionbarActivity而不是Activity以便使用它.
归档时间: |
|
查看次数: |
56825 次 |
最近记录: |