2016-05-03 5 views
1

Я пытаюсь создать панель инструментов с android.support.v7.widget.toolbar, но когда я пытаюсь т добавить элемент, он не будет отображаться на панели инструментов:Элементы панели инструментов Android не отображаются?

Toolbar в activity_main.xml:

<android.support.v7.widget.Toolbar 
    android:id="@+id/my_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

main_activity: на OnCreate:

Toolbar my_tbar = (Toolbar) findViewById(R.id.my_toolbar); 
setSupportActionBar(my_tbar); 

из OnCreate:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.refresh: 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

разрешения/меню/main_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
    android:title="RefreshButton" 
    android:id="@+id/refresh" 
    android:icon="@drawable/refresh_icon" 
    app:showAsAction="always" 
    /> 

</menu> 

refresh_icon создан мной, потому что в @drawable/ я не нашел ic_menu_refresh

Почему кнопка не отображается?

Thank you

+0

у вас эта куча кода public boolean onCreateOptionsMenu (меню меню) { MenuInflater inflater = getMenuInflater(); inflater.inflate (R.menu.menu_main, меню); return super.onCreateOptionsMenu (меню); } –

ответ

1

Это не показано, потому что вы не преувеличиваете расположение меню. Перед вызовом onOptionsItemSelected() вам нужно раздуть макет, как этот

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

просто добавить этот метод в своей деятельности, и он будет работать нормально.