Панель действий не отображает значки действий

Я использую новую поддержку Action Bar, и все мои действия отображаются в режиме переполнения, а не как значки в панели. Мое приложение предназначено для 7+ API.

HomeActivity:

public class HomeActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { ActionBar actionBar = getSupportActionBar(); actionBar.setTitle(R.string.app_name); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.home, menu); return true; } } 

home.xml

 <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_settings"/> <item android:id="@+id/action_browse" android:orderInCategory="100" android:showAsAction="never" android:title="@string/title_activity_browse"/> <item android:id="@+id/action_search" android:actionViewClass="android.widget.SearchView" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom|collapseActionView" android:title="@string/text_search"/> <item android:id="@+id/action_scan" android:icon="@drawable/action_scan" android:showAsAction="always" android:title="@string/title_activity_browse"/> 

Я развертываю на Nexus 7 с 4.3 и на LGP500 с 2.3.3 и без значков. Я также добавил android: theme = "@ style / Theme.AppCompat.Light.DarkActionBar" в манифесте, и мой проект правильно ссылается на android-support-v7-appcompat, как описано в официальном документе.

Solutions Collecting From Web of "Панель действий не отображает значки действий"

Вы должны определить свои файлы ресурсов menu а также атрибуты для библиотеки поддержки.

Чтобы реализовать обратную поддержку, они читают их вместо тех, которые определены в старой версии Android.

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="never" yourapp:showAsAction="never" android:title="@string/action_settings"/> <item android:id="@+id/action_browse" android:orderInCategory="100" android:showAsAction="never" yourapp:showAsAction="never" android:title="@string/title_activity_browse"/> <item android:id="@+id/action_search" android:actionViewClass="android.support.v7.widget.SearchView" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom|collapseActionView" yourapp:showAsAction="ifRoom|collapseActionView" yourapp:actionViewClass="android.support.v7.widget.SearchView" android:title="@string/text_search"/> <item android:id="@+id/action_scan" android:icon="@drawable/action_scan" android:showAsAction="always" yourapp:showAsAction="always" android:title="@string/title_activity_browse"/> </menu> 

NB помните, что для класса SearchView изменилось . Теперь он используется в библиотеке поддержки, поэтому вам также нужно обновить свой код в onCreateOptionsMenu ()

EDIT: вот довольно хороший учебник о том, как перейти от ActionBarSherlok к AppCompat

Общей ошибкой является включение строки заголовка в файл string.xml. Убедитесь, что вы включили его для каждого пункта меню.

Предположим, что наше меню xml содержит следующий элемент:

  <item android:id="@+id/toggle_action" android:orderInCategory="1" android:showAsAction="ifRoom" android:title="@string/toggle_action"/> 

Если мы забудем включить значение для строки toggle_action, тогда значок панели действий не будет отображаться.

Перейдите в свой файл strings.xml и добавьте следующее:

  <string name="toggle_action">TOGGLE</string>