2015-05-13 3 views
1

Я пытаюсь добавить значок поиска в панель действий, и он отображается в предварительном просмотре xml в Android Studio, но когда я запускаю свое приложение, оно появляется в меню переполнения вместо значок на панели действий. Что я делаю не так?Добавление действия в панель действий Android

menu_launch.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=".LaunchActivity"> 

<item android:id="@+id/action_search" 
    android:icon="@drawable/ic_action_search" 
    android:title="@string/action_search" 
    app:showAsAction="ifRoom"/> 

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

Я попытался установить app:showAsAction к "always", но это не сработало.

В моей LaunchActivity.java:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu_launch, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

Мой LaunchActivity.java расширяет деятельность, не ActionBarActivity, я не знаю, если это не имеет ничего общего с ним.

Благодарим за помощь, это мое первое приложение.

+0

попробовать андроид: orderInCategory = "100" или приложение: showAsAction = "всегда" –

ответ

1

Для ActionBarActivity, вы бы использовать app:showAsAction, так как это было бы свойство AppCompat.

Для Activity вы должны использовать android:showAsAction, так как это единственное свойство, которое оно читает.

Если вы хотите, чтобы он всегда отображался как значок, установите для этого свойства значение "always".

0

У вас есть продление действия ActionBarActivity. Файл menu_launch.xml будет работать.

0

Попробуйте изменить тему. Это зависит и от вашей темы. в styles.xml файле

 <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 

дайте мне знать, если это работает или нет, потому что все остальное кажется, работает в вашем коде. Вы также должны поместить эту ссылку в файл manifest.xml. для основной деятельности

<application 
android:theme="@style/AppTheme" /> 

согласно документации ..

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="@string/action_search" 
     android:showAsAction="ifRoom" /> 
<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:showAsAction="never" /> 
</menu> 

Это говорит о том, что действие поиска должно появиться как кнопка действия, когда номер доступен в панели действий, но настройки действия должен всегда появляться в переполнении. (По умолчанию всех действий отображаются в переливе, но это хорошая практика, чтобы явно объявлять конструктивные намерения для каждого действия.)

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

0
Why you are sitting app:showAsAction="never" in action_settings try this 

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

     <item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="@string/action_search" 
     app:showAsAction="ifRoom"/> 

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

или

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

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

     <item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="@string/action_search" 
     app:showAsAction="ifRoom"/> 


</menu> 
0

android:showAsAction="never"

android:showAsAction="ifRoom"

этих вопросы просто изменить его

android:showAsAction="always"

попробуй изменить app:showAsAction к android:showAsAction

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