2015-10-04 90 views
3

我使用AppCompat库中的新工具栏组件。我试图在我的工具栏上显示动作按钮,但他们从不显示。Android工具栏没有显示的动作按钮

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_login" 
     android:title="@string/action_login" 
     android:orderInCategory="100" 
     app:showAsAction="ifRoom" /> 
</menu> 

我的活动

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    //... 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, 
      toolbar, R.string.drawer_open, R.string.drawer_close); 
    toolbar.setTitle(R.string.title_activity_posts); 
    drawerLayout.setDrawerListener(actionBarDrawerToggle); 
    if (getSupportActionBar() != null) 
    { 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setHomeButtonEnabled(true); 
    } 
    actionBarDrawerToggle.syncState(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

我缺少什么?

回答

3

我不知道使用的活动类型。但是,使用AppCompat /支持工具栏也需要初始化。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
if (toolbar != null) 
{ 
     setSupportActionBar(toolbar);//To display toolbar 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setElevation(0); // or other... 
} 

多见于this

+0

确实如此。我缺少'setSupportActionBar(toolbar);' – Andrei

0

你忘了给它一个图标,有时你必须改变app:showAsActionalways这样的:

<item 
    android:id="@+id/action_login" 
    android:title="@string/action_login" 
    android:orderInCategory="100" 
    android:icon="@drawable/ic_action_login" 
    app:showAsAction="always" />