扩展活动时的工具栏

时间:2015-06-19 15:05:33

标签: android android-activity android-actionbar android-appcompat android-toolbar

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

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

你对我有什么建议吗?我知道这可能是一个愚蠢的问题,但我只是不知道如何使这项工作......

1 个答案:

答案 0 :(得分:5)

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

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

您可以查看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完全兼容。