Почему пункты меню появляются в optionsMenu?

Несмотря на то, что некоторые значки связаны с определенным действием и им не хватает места в Actionbar, они появляются в optionsMenu, а не в значке overflow.

Я наполняю actionBar пятью значками, каждый из которых имеет определенную функциональность. «Пожалуйста, обратитесь к файлу XML ниже», элементы, которые имеют android:showAsAction=never, я ожидаю, что они будут неявно находиться внутри значка overflow на actionBar, но когда я запускаю приложение , любой элемент со свойством android:showAsAction=never вместо этого появляется в optionsMenu. Почему это происходит? и я надеюсь, что объяснил проблему ясно.

Обновление:

Просто я хочу, чтобы, если нет места для размещения значка на ActionBar, они должны быть размещены внутри значка overflow, как показано на изображении «значок с тремя вертикальными точками друг над другом».

Примечание:

Я использую гэлакси ноут 3

введите здесь описание изображения

Почему мой вопрос помечен как дубликат. Вопрос, предложенный как дубликат, отличается от моего? Пожалуйста, просмотрите вопрос еще раз.

Java_Code:

public class ActionBarActivityTest00 extends Activity {

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.action_bar_activity_test00, menu);
    return super.onCreateOptionsMenu(menu);
}

XML:

<menu 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.actionbaractivitytest.ActionBarActivityTest00" >

<!-- Search / will display always -->
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="action_search"
      android:showAsAction="ifRoom"/>

<!-- Location Found -->
<item android:id="@+id/action_location_found"
      android:icon="@drawable/ic_action_location_found"
      android:title="action_location_found"
      android:showAsAction="ifRoom" />

<!-- Refresh -->
<item android:id="@+id/action_refresh"
      android:icon="@drawable/ic_action_refresh"
      android:title="action_refresh"
      android:showAsAction="ifRoom" />

<!-- Help -->
<item android:id="@+id/action_help"
      android:icon="@drawable/ic_launcher"
      android:title="action_help"
      android:showAsAction="never"/>

<!-- Check updates -->
<item android:id="@+id/action_check_updates"
      android:icon="@drawable/ic_action_refresh"
      android:title="action_check_updates"
      android:showAsAction="never" />


comment
возможный дубликат элементы ActionBar всегда отображаются в дополнительном меню   -  person M D    schedule 18.06.2014
comment
@SimplePlan спасибо, я только что попробовал ваше предложение, но, к сожалению, когда на панели действий появляется переполнение значков, лишние значки автоматически заменяются в меню параметров.   -  person user2121    schedule 18.06.2014
comment
Ваш код работает нормально на моем конце.   -  person Aman Singh    schedule 18.06.2014
comment
@AmanSingh, пожалуйста, посмотрите обновление   -  person user2121    schedule 18.06.2014


Ответы (2)


Добавьте ниже свойство в showasaction=never Все пункты меню

android:orderInCategory="2"

вот и все.. это будет показано в переполнении.. Изменяет мой пример кода для вашего сценария, и он отлично работает в моем приложении.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.demo.MainActivity" >

 <item
    android:id="@+id/action_settings1"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="ifRoom"/>
  <item
    android:id="@+id/action_settings2"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="ifRoom"/>
   <item
    android:id="@+id/action_settings3"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="ifRoom"/>
<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never"/>

<item
    android:id="@+id/action_settings5"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never"/>

person Jayesh Khasatiya    schedule 18.06.2014
comment
я пытался вам ответить, к сожалению, если нет места для размещения значка на панели действий, он будет помещен в меню параметров, а не внутри значка переполнения, как показано на изображении. - person user2121; 18.06.2014
comment
Я тестирую свое приложение на Galaxy Note3. как вы думаете, версия устройства может иметь значение? - person user2121; 18.06.2014
comment
Вы добавили appCompact lib? - person Jayesh Khasatiya; 18.06.2014
comment
и еще одна вещь. Замените Activity на ActionBarActivity в вашем классе mainActivity. Затем проверьте.... - person Jayesh Khasatiya; 18.06.2014
comment
когда я щелкаю правой кнопкой мыши по проекту->свойства->Android: appcompat-V7 отмечен зеленым знаком. это то, что вы имеете в виду? - person user2121; 18.06.2014
comment
Я заменил Activity на ActionBarActivity, и результат таков: все элементы помещаются в меню параметров, а nn на панели действий больше нет? сбивающий с толку - person user2121; 18.06.2014
comment
не могли бы вы сказать мне, какой файл я должен скачать? - person user2121; 18.06.2014
comment
загрузка и импорт всего проекта. - person Jayesh Khasatiya; 19.06.2014
comment
На самом деле, я попробую ваш обновленный ответ, но, к сожалению, это не решит проблему. - person user2121; 19.06.2014

Попробуй это:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.fafad.MainActivity" >

  <!-- Search / will display always -->
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="action_search"
      android:orderInCategory="1"
      app:showAsAction="ifRoom"/>

<!-- Location Found -->
<item android:id="@+id/action_location_found"
    android:orderInCategory="2"
      android:icon="@drawable/ic_action_location_found"
      android:title="action_location_found"
      app:showAsAction="ifRoom" />

<!-- Refresh -->
<item android:id="@+id/action_refresh"
      android:icon="@drawable/ic_action_refresh"
      android:orderInCategory="3"
      android:title="action_refresh"
      app:showAsAction="ifRoom" />

<!-- Help -->
<item android:id="@+id/action_help"
      android:icon="@drawable/ic_launcher"
      android:orderInCategory="4"
      android:title="action_help"
      android:showAsAction="never"/>

<!-- Check updates -->
<item android:id="@+id/action_check_updates"
      android:icon="@drawable/ic_action_refresh"
      android:orderInCategory="5"
      android:title="action_check_updates"
      app:showAsAction="never" />

</menu>
person Aman Singh    schedule 18.06.2014