我如何在不扩展 actionbaractivity 的情况下设置 app.compat actionbar 工具栏?

How could I set up an app.compat actionbar toolbar without extending actionbaractivity?

我已经在扩展另一个 class (expandablelistactivity),但我的 activity 中需要一个工具栏。有解决办法吗?

通常我结合使用工具栏:

setSupportActionbar()

在我的 activity 中。在我的 activity 的 xml 中,我将使用:

<android.support.v7.widget.Toolbar/>

在我的应用程序主题中,我将其设置为无操作栏:

parent="Theme.AppCompat.Light.NoActionBar"

人们建议我

import android.support.v7.app.AppCompatDelegate;

但是,它说不会被解决 ("cannot resolve appcompatdelegate")。我已经更新了我的 Android 支持存储库和 Android 支持库。

v4 支持库的 22.1 版提供了新的 AppCompatDelegateAppCompatDelegate 现在公开了像 setSupportActionbar() 这样的方法,以前是 ActionBarActivity.

的一部分

这是来自 Google 的博客 post,如果您需要更多信息,其中介绍了 AppCompatDelegate

您可以将 AppCompatDelegate 与匹配的 activity 生命周期回调一起用于与操作栏相关的任何内容。

来自Chris Banes' blog

There is a contract to maintain when you create a delegate. You must callback to it at every call it exposes (for instance onCreate()), but it’s really simple and can be extracted into a base class.

The end result is that you can attach all of AppCompat’s functionality to any Activity sub-class, as long as you call it as it wants.

查看 AppCompatPreferenceActivitythis example,扩展无操作栏 PreferenceActivity,并使用 AppCompatDelegate 提供操作栏。