2015-10-04 5 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/support также необходимо инициализировать.

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 (панель инструментов);' – Andrei

0

вы забыли дать ей икону, и иногда вы должны изменить app:showAsAction к always так:

<item 
    android:id="@+id/action_login" 
    android:title="@string/action_login" 
    android:orderInCategory="100" 
    android:icon="@drawable/ic_action_login" 
    app:showAsAction="always" /> 
Смежные вопросы