为什么不推荐使用ActionBarActivity


121

我重新安装了Android Studio,并开始编写活动扩展代码ActionBarActivity,表明该活动已被弃用。那么,如何为我的活动设置操作栏。另外,《入门培训》使用的,ActionBarActivity不作参考,它已被弃用。




16
从appcompat-v7-r21.1.0开始,逻辑有所改变,并且最重要的ActionBarActivity是现在AppCompatActivity。从您的角度来看,这两者之间没有区别。
Eugen Pechanec 2015年

Answers:


120

Toolbar引入以来就不推荐使用ActionBar 。Toolbar可以看作是任何操作栏的“超集”。因此,“旧” ActionBar现在是的示例Toolbar。如果您想要类似的功能,但没有弃用警告,请执行以下操作:

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

您需要Toolbar在布局xml中定义:

<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'

9
它是那样简单换出extends ActionBarActivityextends AppCompatActivity
Ehtesh Choudhury

9
内部有相当多的更改,但界面相同。是的,这就像替换活动类型一样容易。
Endran

61
糟透了,Android Studio向导仍在扩展ActionBarActivity,然后告诉您它已被弃用。他们甚至在内部使用@Google交流吗?
男孩

不是完美的解决方案。给定的ActionBar答案而不是ActionBarActivity答案。我将使用@DroidMind解决方案
Shabbir Dhangot

太好了,再来工作。与鼓励每个人都使用Fragments的设计相同。Google的设计原则非常适合拥有10个人在同一个应用程序上工作的公司。
Muz 2015年


6

此答案提供了一种消除错误消息的简单方法。您可以将其视为对他人的补充。

当我们更改父Activity类:ActionBarActivityAppCompatActivity,错误消息将消失。

您可以单击此处获取更多信息。


1
这似乎对其他任何人都有益吗?
Noah Herron 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.