Élément avec l'app:showAsAction ne montrant pas
Je ne peux pas comprendre pourquoi le mal et incompatibles (AndroidStudio me dit "Devraient utiliser app:showAsAction avec le appcompat bibliothèque) code
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/search"
android:showAsAction="always" />
</menu>
fonctionne parfaitement, mais une bonne et une version compatible comme
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/search"
app:showAsAction="always" />
</menu>
ne pas montrer mon icône à tous.
Je suis en essais sur Samsung GT-P5210 (android v. 4.4.2) et la Nexus 7 (4.4.4)
- Pouvez-vous également fournir le code que vous avez utilisé dans votre Fragment/Activité?
- Juste public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R. menu.principal, menu); return true; }
InformationsquelleAutor ITurchenko | 2014-10-15
Vous devez vous connecter pour publier un commentaire.
Choses que vous devriez toujours vérifier lorsque vous souhaitez utiliser la barre d'action sont
1) Étendre
ActionBarActivity
au lieu deActivity
public class MainMenu extends ActionBarActivity{
2) Avoir la bon style sélectionné tel que défini à manifester
Manifeste
Style
3) Sélectionnez le droit titre pour
showAsAction
C'est ce que la plupart des gens se trompent
4) Définir votre
Menu
dansActivity
Si vous faites le à la suite de votre barre d'action devrait fonctionner.
Ensuite, vous devez ajouter le
onClickListener
pour chaque position...@Override public boolean onOptionsItemSelected(MenuItem item)
méthode queOnClickListener
pour chaque élément. comme décrit ici: developer.android.com/guide/topics/ui/menus.htmlJe viens de relire votre question et vu votre problème est tout le contraire (mais certaines pièces de mon ancienne réponse s'appliquent toujours à votre problème), voici donc la mise à jour de réponse:
Mise à jour:
Vous avez importé le appcompat bibliothèque dans votre gradle fichier, mais vous avez l'air de ne soutenir que les appareils plus récents que l'API de Niveau 11 ou 14? Si c'est le cas, la fibre de vérifier voit que vous avez importé le appcompat bibliothèque via gradle et il pense que vous devriez utiliser le
ActionBarActivity
en raison de votre bibliothèque d'importation. C'est pourquoi vous obtenez l'erreur. Mais comme votreandroid:showAsAction
attribut de travail, vous utilisez le natifActivity
et les natifs de l'attribut appel est correct, même si la fibre de vérifier dit qu'il est erroné. Donc, si vous voulez enlever la charpie erreur, vous devez supprimer le appcompat lib de votre gradle fichier et peut-être changer votre activité thème pour le natif Holo thème de la Lumière, que votre thème actuel pourrait compter sur le appcompat thème.La réponse pourquoi il ne fonctionne pas avec le
app
espace de noms est dans l'attribut XML chargement pour natif de, respectivement, de la bibliothèque de code, qui est traitée dans l'ancien réponse.Vieille Réponse
Si vous utilisez le
ActionBarActivity
à partir de la bibliothèque de prise en charge pour atteindre les appareils inférieur de l'API de niveau 11, le principal problème ici est que leActionBarActivity
recrée certaines des Android native XML des attributs tels queandroid:showAsAction
dans son propre champ, pour vous permettre de définir avec:puis d'y accéder avec le même attribut (ici
showAsAction
) dans leapp:
espace de noms.Ainsi, le ActionBarActivity ne pouvez pas les voir ni les toucher le natif
android:showAsAction
attribut que c'est seulement la chercher dans leapp
espace de noms et pas lesandroid
espace de noms.Si vous souhaitez utiliser le natif de l'attribut, vous devez utiliser le natif
Activity
avec un Holo Thème, qui est pris en charge uniquement à partir de l'API de Niveau 11 et plus.addthis:
ou
par exemple:
et dans l'Activité:
Et de lire plus ici