【问题标题】:Why was ActionBarActivity deprecated为什么 ActionBarActivity 被弃用
【发布时间】:2015-04-26 12:36:19
【问题描述】:

我全新安装了 Android Studio,并开始编写一个扩展 ActionBarActivity 的活动,结果表明它已被弃用。那么我该如何为我的活动设置一个操作栏。 此外,入门培训使用ActionBarActivity,但未提及它已被弃用。

【问题讨论】:

标签: android android-actionbar deprecated android-actionbaractivity


【解决方案1】:

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

【讨论】:

  • 是不是像把extends ActionBarActivity换成extends AppCompatActivity一样简单?
  • 内部有很多变化,但界面是一样的。所以,是的,就像替换活动类型一样简单。
  • 很糟糕,Android Studio 向导仍然扩展 ActionBarActivity,然后告诉您它已被弃用。他们甚至会在@Google 内部进行交流吗?
  • 不是完美的解决方案。您对 ActionBar 给出的答案不是针对 ActionBarActivity。我会选择@DroidMind 解决方案
  • 太棒了,又要工作了。与他们的设计相同,以鼓励每个人使用 Fragments。 Google 的设计原则非常适合有 10 人开发同一个应用的公司。
【解决方案2】:

这是来自post in Android developers blog的答案:

“ActionBarActivity 已被弃用,取而代之的是新的 AppCompatActivity。

您可以在此处阅读更多相关信息。

【讨论】:

    【解决方案3】:

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

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

    您可以点击here了解更多信息。

    【讨论】:

    • 这看起来像是对其他人的补充吗?
    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2019-03-09
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多