2014-07-20 3 views
0

Я следил за обучением android developers и написал приложение, которое должно иметь панель действий.Экран действий не отображается на галактике S3

я добавил два элемента в панели действий:

  • первый не имеет значок и Android: showAsAction = "IfRoom"
  • второй, имеет только строку и Android: showAsAction = "Никогда".

main_menu_actions.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.shaniandroid.myfirstapp.MainActivity" > 

<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
     android:icon="@drawable/search_icon" 
     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" /> 

Однако не отображается на панели действий!

Элементы отображаются только при нажатии кнопки меню .

В предыдущих ответах я читал, что кнопка «переполнения» не отображается на 4.3, если присутствует кнопка меню аппаратного обеспечения - и это нормально для второго элемента.

Но как насчет первого элемента - не должен ли он отображаться с его значком сверху экрана?

Примечание: Я запускаю приложение на галактике S3 4.3.

ответ

0

Если вы используете AppCompat, тогда вы должны использовать app пространство имен для showAsAction, которое вы указали. Ваш файл main_menu_actions.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.shaniandroid.myfirstapp.MainActivity" > 

<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
     android:icon="@drawable/search_icon" 
     android:title="@string/action_search" 
     app:showAsAction="ifRoom" /> <!--here--> 
<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> <!--and here--> 
+0

О, спасибо, не осознал этого. я проверю это. Q: что лучше делать - использовать AppCompat или нет? я не вижу большой причины для версий suppport ниже 4.x. – shani

+0

работает !!! thanks :) – shani

+0

@shani Если вы не хотите поддерживать предварительные устройства ICS, используйте собственный ActionBar. –