Los elementos de ActionBar aparecen siempre en el menú de desbordamiento

Estoy intentando agregar el artículo de las acciones en la barra de la acción, pero los artículos están agregando siempre en la lista del desbordamiento incluso hay mucho sitio. Cualquier sugerencia para resolver esto?

Introduzca aquí la descripción de la imagen

Esto debería ser así

Introduzca aquí la descripción de la imagen

Main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_refresh" android:icon="@drawable/ic_action_refresh" android:showAsAction="ifRoom" android:title="@string/action_refresh" /> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:showAsAction="ifRoom" android:title="@string/action_search" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never" /> </menu> 

MainActivity.java

 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.actionbardemo.app" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.actionbardemo.app.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

Construir un gradiente

 apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.3" defaultConfig { minSdkVersion 8 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile 'com.android.support:support-v4:19.0.1' compile 'com.android.support:appcompat-v7:19.0.1' compile fileTree(dir: 'libs', include: ['*.jar']) } 

Mi aplicación está utilizando la biblioteca de soporte para la compatibilidad en versiones tan bajas como Android 2.2, así que tengo que definir mi propio espacio de nombres XML y utilizar ese espacio de nombres como el prefijo de atributo

Solución fue esto, estaba escribiendo este android:showAsAction="ifRoom" pero debería tener la app:showAsAction="ifRoom"

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_refresh" android:icon="@drawable/ic_action_refresh" app:showAsAction="ifRoom" android:title="@string/action_refresh" /> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="ifRoom" android:title="@string/action_search" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never" /> </menu> 

En el archivo xml del menú necesita agregar yourapp: showAsAction = "always" como a continuación.

 <item android:id="@+id/Option" android:actionProviderClass="android.support.v7.widget.ShareActionProvider" android:icon="@drawable/ic_action_settings" android:title="Option" yourapp:showAsAction="always"/> <item android:id="@+id/Save" android:actionProviderClass="android.support.v7.widget.ShareActionProvider" android:icon="@drawable/ic_action_save" android:title="Save" yourapp:showAsAction="always"/> 

Según el documento

Si su aplicación está utilizando la Biblioteca de soporte para la compatibilidad en versiones tan bajas como Android 2.1, el atributo showAsAction no está disponible en el espacio de nombres android. En su lugar, este atributo es proporcionado por la biblioteca de soporte y debe definir su propio espacio de nombres XML y utilizar ese espacio de nombres como prefijo de atributo. (Un espacio de nombres XML personalizado debe basarse en el nombre de la aplicación, pero puede ser cualquier nombre que desee y solo se puede acceder dentro del ámbito del archivo en el que se declara). Por ejemplo:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <!-- Search, should appear as action button --> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" yourapp:showAsAction="ifRoom" /> ... </menu> 

prueba esto:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_refresh" android:icon="@drawable/ic_action_refresh" app:showAsAction="ifRoom" android:title="@string/action_refresh" /> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="ifRoom" android:title="@string/action_search" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never" /> 

Si desea mostrar todos los elementos siempre en la barra de acciones, haga su archivo xml de menú como a continuación:

 <item android:id="@+id/action_refresh" android:icon="@drawable/ic_action_refresh" app:showAsAction="always" android:title="@string/action_refresh" /> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" app:showAsAction="always" android:title="@string/action_search" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="always" /> 

Pruebe con android:showAsAction="always" para los elementos del menú.

  • Deshacerse de la sombra de ActionBar sobre SlidingTabLayout
  • getActionBar () devuelve null en api 19, api api 21 min sdk 16
  • Estilo EditarTexto personalizado con appcompat v7
  • No puedo conectar android-support-v7-appcompat a mi proyecto
  • Color de flecha de ActionBarDrawerToggle v7
  • ActionBar con AppCompat actionBarItemBackground no funciona
  • Appcompat v7 no se introduce en el proyecto
  • Error de biblioteca Appcompat: No se encontró ningún recurso que coincida con el nombre dado
  • No contraer la barra de herramientas cuando RecyclerView se ajusta a la pantalla
  • Cómo crear vistas de estilo con appcompat
  • Barra de herramientas de superposición en la parte superior del contenido de la actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.