2016-05-02 2 views
0

, пожалуйста, помогите мне, , почему некоторые значки не отображаются в меню? Как сделать так, чтобы все значки были видны? На картинах я нарисовал свое меню.Значки меню Android - не все видимы?

enter image description here

enter image description here

<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=".MainActivity"> 

    <item //this icon is visible 
     android:id="@+id/action_add_new_group" 
     android:icon="@drawable/menu_add_group" 
     android:title="@string/action_add_new_group" 
     app:showAsAction="ifRoom|withText" /> 

    <item //this icon is visible 
     android:id="@+id/action_load_from_sd" 
     android:icon="@drawable/menu_add_dictionary" 
     android:title="@string/action_load_from_sd" 
     app:showAsAction="ifRoom|withText" /> 
    <item //this icon is NOT visible 
     android:id="@+id/action_convert_from_xls" 
     android:icon="@drawable/menu_date_sorting" 
     android:title="@string/action_convert_from_xls" 
     app:showAsAction="ifRoom|withText" /> 

    <item //this icon is NOT visible 
     android:id="@+id/action_sortting_options" 
     android:icon="@drawable/menu_date_sorting" 
     android:title="sorting" 
     app:showAsAction="ifRoom|withText"> 
     <menu> 
      <item //this icon is visible 
       android:id="@+id/action_sort_by_date" 
       android:icon="@drawable/menu_date_sorting" 
       android:title="by date" 
       app:showAsAction="ifRoom|withText" /> 
     </menu> 
    </item> 
</menu> 

Спасибо.

ответ

0

Если вы хотите, чтобы отобразить все значки, вы должны поставить app:showAsAction в always вместо ifRoom|withText в меню item с.

+0

Я пробовал. Это не работает! Возможно, даже есть некоторые идеи, почему бы не работать для меню первого уровня? Не только работает для меню первого уровня. – JDev

+0

Может быть, вам не хватает места в вашем ActionBar. Попробуйте установить меньший заголовок или что-то еще. – jaibatrik

+0

Нет, я тоже проверял. Значок с пустой строкой. – JDev

0

Попробуйте это,

только значок означает,

android:icon="@drawable/menu_date_sorting" 
android:title="sorting" 
app:showAsAction="always" 

значок с текстом означает,

android:icon="@drawable/menu_date_sorting" 
android:title="sorting" 
app:showAsAction="always|withText" 
+0

Я пробовал. Это не работает! Возможно, даже есть некоторые идеи, почему бы не работать для меню первого уровня? Не только работает для меню первого уровня. – JDev

0

Иконки пунктов меню, чьи приложения: showAsAction = "всегда" будет показано в панели действий. Но во всех других пунктах меню не будет значка, когда внутри OptionsMenu.

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

+0

Я пробовал. Это не работает! Возможно, даже есть некоторые идеи, почему бы не работать для меню первого уровня? Не только работает для меню первого уровня. – JDev

+0

Попробуйте протестировать приложение на вкладке. Вы увидите, что элементы, которые вы установили как showAsAction = "always", будут отображаться в actionBar. Когда в вашем телефоне значок будет отображаться только в том случае, если в панели действий есть место. –

0

вы должны изменить эту строку кода app:showAsAction="ifRoom|withText" в app:showAsAction="always|withText" При добавлении ifRoom, пункт меню отображается только при наличии достаточного места для пункта будет отображаться. И always, как следует из названия, всегда будет отображаться в меню.

Смежные вопросы