Comment changer la position du menu sur android dépassement de bouton?
Je voudrais juste mettre en œuvre somethings même en tant que menu contextuel dans l'application Gmail, ancrée dans le débordement de bouton en haut à droite. pour cela, j'ai utilisé le même code que google tutoriel pour android Android menu contextuel, mais pour m'afficher le menu sur le haut du bord de actionbar non. Si vous remarquez sur menu pop de gmail débordement vous avez vu que popmenu prendre place à bord de l'actionbar.
C'est le xml que j'ai utilisé pour le menu déroulant:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/item1"
android:title="lablab"/>
<item
android:id="@+id/item2"
android:title="lablab"/>
</menu>
et à la suite est dans mon activité:
public void showFontSetting(View view) {
PopupMenu popup = new PopupMenu(this, view);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.menu, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
//TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(Index.this,
"You Clicked : " + item.getTitle(),
Toast.LENGTH_SHORT).show();
break;
case R.id.item2:
break;
}
return true;
}
});
}
avez-vous vérifié aucune réponse?
Oui, j'essaie de répondre dans mon code. Je vous remercie.
Oui, j'essaie de répondre dans mon code. Je vous remercie.
OriginalL'auteur user3266062 | 2014-05-07
Vous devez vous connecter pour publier un commentaire.
Ajouter le morceau de code suivant à votre activité:
Créer un XML dans
res/layout
le répertoire et le nommylayout.xml
Vue de la vue; LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R. layout.monmodèle, null); RelativeLayout item = (RelativeLayout).findViewById(R. id.point);
voir ci-dessus, édité code de réponse
Que dois-je mettre à la Place de monmodèle à gonfler. J'ai eu beaucoup d'erreur.
🙂 vous mettez votre propre mise en page. fichier xml
OriginalL'auteur SuN
À se chevauchent seulement, l'utilisation de cette approche:
Pour obtenir un PopupMenu avec un arrière-plan lumineux et un contrôle précis sur les décalages de l'utilisation de cette approche:
styles.xml
Code:
Ne fonctionne plus:
Voici un moyen simple de régler la position d'unPopupMenu
. Il positionne le menu plus de sa vue d'ancrage (overflowButton
) comme le menu dans la barre d'action:popupMenu.getDragToOpenListener()
est unandroid.widget.PopupMenu
pour moi?Je pense que vous avez analysé la sortie de débogage et de détecter qqch comme ceci: mDragListener = {android.de soutien.v7.widget de.PopupMenu$1@7128}. Avoir un regard détaillé sur la sortie: Les deux derniers signes avant le @ sont 1 et $ ce qui signifie que l'objet est un intérieur anonyme instance de classe. Une véritable instance de PopupMenu ressemble à ça: ce = {android.support.v7.widget.PopupMenu@7123} sans $1. Le code source de PopupMenu révèle aussi ce fait: mDragListener = new ListPopupWindow.ForwardingListener(mAnchor) {...};
Cela ne fonctionne pas. Peut-être est travaillé dans le passé, mais pas plus longtemps. Classe ListPopupWindow ne définit pas/déclaration d'une ForwardingListener. ForwardingListener est situé dans android.de soutien.v7.widget et son port d'écoute.getPopup() n'est pas une méthode setVerticalOffset().
Le chevauchement fonctionne pour moi
android:dropDownVerticalOffset
etandroid:dropDownHorizontalOffset
ne sont pas de travail pour moi, mais le fond lumineux de travaux.OriginalL'auteur user1185087
L'application de gravité aidé dans mon cas
mais c'est dans le soutien lib pour toutes les versions.
OriginalL'auteur Neeraj
Ici x et y est la position de la fenêtre popup par rapport à votre point de vue.
vote négatif est accepté mais a accepté la réponse est aussi la suggestion d'utiliser une fenêtre pop-up.
OriginalL'auteur Sanket Kachhela