扩展时的工具栏 Activity

Toolbar when extending Activity

我需要扩展 Activity 而不是 ActionBarActivity 或 AppCompatActivity 才能使用第三方库。

在我一直在使用 AppCompatActivity 的所有应用程序中,以便轻松地在其中添加工具栏,但显然如果我扩展 Activity,我就不能这样做了。如果有一个 ActionBar,我也会很高兴:它不一样,但总比没有好。不过,我不知道该怎么做 :-/

你对我有什么建议吗?我知道这可能是一个愚蠢的问题,但我只是不知道如何让它发挥作用...

首先检查你正在使用的库。它可能已过时。

使用新的 22.1+ appcompat,您可以使用 AppCompatDelegate 将 AppCompat 的支持扩展到任何 Activity。

你可以查看这个官方 link 到 AppCompatPreferenceActivity,在那里你可以找到这个技术的例子。

你有:

  • Toolbar 添加到您的 Activity:

像这样:

<android.support.v7.widget.Toolbar
    android:id="@+id/mytoolbar"
    android:background="?attr/colorPrimary"/>
  • 使用不带 ActionBar 的 AppCompat Theme

像这样:

  <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="colorPrimary">@color/myColor</item>
        ....
    </style>
  • AppCompatDelegate 添加到您的 Activity

类似于:

public class MainActivity extends Activity implements AppCompatCallback {

      private AppCompatDelegate delegate;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            //create the delegate        
            delegate = AppCompatDelegate.create(this, this);

            //call the onCreate() of the AppCompatDelegate
            delegate.onCreate(savedInstanceState);

            //use the delegate to inflate the layout
            delegate.setContentView(R.layout.activity_main);

            //add the Toolbar
            Toolbar toolbar= (Toolbar) findViewById(R.id.mytoolbar);
            delegate.setSupportActionBar(toolbar);
        }

   //.....
}

检查官方示例以包装您的 Activity 的其他方法以与 AppCompatActivity.

完全兼容