我刚安装了 Android Studio 并开始编写一个继承自 ActionBarActivity
的活动,但它显示该类已过时。那么,我该如何为我的活动设置 Action Bar?
另外,在入门培训中,虽然使用了 ActionBarActivity
,但没有提到它已经被弃用。
我刚安装了 Android Studio 并开始编写一个继承自 ActionBarActivity
的活动,但它显示该类已过时。那么,我该如何为我的活动设置 Action Bar?
另外,在入门培训中,虽然使用了 ActionBarActivity
,但没有提到它已经被弃用。
自从Toolbar
被引入后,ActionBar
已经过时。可以将Toolbar
视为任何操作栏的“超集”。因此,“旧”的ActionBar
现在是Toolbar
的一个示例。如果您想要类似的功能,但又不想收到弃用警告,请执行以下操作:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
toolbar.setTitle(R.string.app_name);
setSupportActionBar(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'
extends ActionBarActivity
替换为 extends AppCompatActivity
就行了吗? - Ehtesh Choudhury
ActionBarActivity
现在是AppCompatActivity
。 从您的角度来看,这两者没有区别。 - Eugen Pechanec