为什么不赞成使用ActionBarActivity

问题描述 投票:116回答:3

我刚刚安装了Android Studio,我开始编写一个活动来扩展ActionBarActivity并且它显示它已被弃用。那么我如何为我的活动设置一个操作栏呢。此外,入门培训使用ActionBarActivity而不引用它已被弃用。

android android-actionbar deprecated android-actionbaractivity
3个回答
117
投票

自从引入Toolbar以来,ActionBar已被弃用。 Toolbar可以被视为任何行动吧的“超集”。因此,'旧'ActionBar现在是Toolbar的一个例子。如果您想要类似的功能,但没有弃用警告,请执行以下操作:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    toolbar.setTitle(R.string.app_name);
    setSupportActionBar(toolbar);
}

您需要在布局xml中定义Toolbar

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>

有了这个新功能,您可以创建自己的自定义ActionBar,让Android做繁重的工作。只需创建自己的自定义视图,从Toolbar扩展。


此外,您应该使用AppCompatActivity而不是ActionBarActivity,它是在最新版本的appcompat库中引入的。所以不要忘记更新gradle

compile 'com.android.support:appcompat-v7:22.1.1'

65
投票

以下是post in Android developers blog的答案:

“ActionBarActivity已被弃用,有利于新的AppCompatActivity。”

你可以在那里阅读更多相关信息。


5
投票

这个答案提供了一种消除错误消息的简单方法。你可以看作是对别人的补充。

当我们将父Activity类:ActionBarActivity更改为AppCompatActivity时,错误消息将消失。

您可以点击here获取更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.