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?
- Cómo agregar un botón de acción flotante, sin AppCompat?
- La vista de búsqueda no funciona desde la aplicación compat
- El widget de búsqueda no está funcionando en el release apk
- AppCompat_v7 Barra de herramientas como barra de acciones que no muestra acciones 'siempre' desde el menú, pero la barra de herramientas de la API no
- RecyclerView notifyDataSetChanged se desplaza a la posición superior
Esto debería ser así
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']) }
- Cómo personalizar el color de AppCompatButton
- Java.lang.NoSuchFieldError android / support / v7 / AppCompat /
- Si utilizo la nueva "biblioteca V7 Appcompat", ¿necesito todavía "V4 Support Library" para un SDK mínimo de 7?
- Estilo de acción de AppCompat
- SearchView en AppCompat distorsiona el icono
- Animación de la barra de herramientas Android AppCompat-v21
- Android: TextView no respeta el androide: TextViewStyle usando appcompat-v7 22.1.1
- getActionBar no funciona con AppCompat lib
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ú.
- Android: Escaneado de redes Wifi + Lista seleccionable
- Llamar a la actividad personalizada como startActivityForResult