Android:从支持库向工具栏小部件添加操作按钮的正确方法是什么?

时间:2015-07-03 16:40:46

标签: android android-studio android-support-library

这是我的工具栏样式:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/md_blue_500">

    <item
        android:id="@+id/next_button"
        android:title="@string/next_text"
        android:orderInCategory="1"
        android:icon="@drawable/ic_navigate_next_white_18dp"
        app:showAsAction="ifRoom">  
    </item>



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

我使用以下方法将此工具栏添加到我的活动布局中

<include
    layout="@layout/toolbar"
    android:id="@+id/toolbar">

</include>

从那里开始,我已经在我的onCreate方法中将其设置为我的Action Bar,基本上说:嘿Android,我不想使用你的Action Bar,我已经拥有了自己的。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bnew_account);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    // I'm not using your action bar anymore
    setSupportActionBar(toolbar); 
}

由于某些原因,如果我将item元素放在工具栏样式中,它会崩溃我的应用程序:

    <item
        android:id="@+id/next_button"
        android:title="@string/next_text"
        android:orderInCategory="1"
        android:icon="@drawable/ic_navigate_next_white_18dp"
        app:showAsAction="ifRoom">  
    </item>

对我做错了什么的想法?

1 个答案:

答案 0 :(得分:1)

虽然略有过时,adding action items to the Action Bar培训会显示您如何通过menu resource添加操作项。当您使用setSupportActionBar()致电Toolbar时,对onCreateOptionsMenu()的来电将自动发送至您的Toolbar,从而替代标准操作栏。