如何将ActionBar添加到已扩展ListActivity的活动中?

时间:2015-04-23 08:48:12

标签: android android-actionbar android-actionbaractivity

我有一个扩展ListActivity的活动 我可以在不延长ActionBar的情况下添加ActionBarActivity吗?

3 个答案:

答案 0 :(得分:9)

您可以使用支持库提供的新AppCompatDelegate组件。

现已弃用ActionBar,您应使用Toolbar,以符合Material Design。您可以使用支持库提供的工具栏。

将它添加到您的xml布局中,如下所示:

<android.support.v7.widget.Toolbar

        android:id="@+id/my_awesome_toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="56dp"
        android:background="?attr/colorPrimary"

        />

请务必在styles.xml中使用NoActionBar主题。使用Material Design颜色标记。

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>

然后,将AppCompatDelegate添加到OnCreate()中的Activity,就像这样。

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

    AppCompatCallback callback = new AppCompatCallback() {
        @Override
        public void onSupportActionModeStarted(ActionMode actionMode) {
        }

        @Override
        public void onSupportActionModeFinished(ActionMode actionMode) {
        }
    };

    AppCompatDelegate delegate = AppCompatDelegate.create(this,callback);

    delegate.onCreate(savedInstanceState);
    delegate.setContentView(R.layout.activity_main);

    Toolbar toolbar= (Toolbar) findViewById(R.id.my_awesome_toolbar);
    delegate.setSupportActionBar(toolbar);


}

注意:要创建AppCompatDelegate,您需要传递Activity本身和回调,良好的做法应该是在Activity中实现回调,但为了缩短原因,我在onCreate()中创建了一个实例

答案 1 :(得分:1)

在styles.xml中使用holo主题因为只能在holo

之后使用ActionBar

使用此:

<style name="AppTheme" parent="android:Theme.Holo">

答案 2 :(得分:0)

您可以使用工具栏:将AppCompat工具栏添加到您的活动布局中。

教程(转到ActionBar):http://android-developers.blogspot.fr/2014/10/appcompat-v21-material-design-for-pre.html

文档https://developer.android.com/reference/android/support/v7/widget/Toolbar.html