Montrer un PopupWindow centralisé
J'ai des popups sur mon app, il est en plein écran et le code suivant:
content.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
content.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int screenWidth = windowManager.getDefaultDisplay().getWidth();
int screenHeight = windowManager.getDefaultDisplay().getHeight();
int x = screenWidth / 2 - content.getMeasuredWidth() / 2;
int y = screenHeight / 2 - content.getMeasuredHeight() / 2;
window.showAtLocation(content, Gravity.NO_GRAVITY, x, y);
La fenêtre exposition centrée.
Mais j'ai une autre Activité qui n'est pas en mode plein écran lorsque la fenêtre contextuelle s'ouvre, il est vrai-de là où il est besoin de l'être.
À essayer de comprendre pourquoi cela se produit, je pense que le showAtLocation montre que c'est par rapport à l'Activité en cours, mais j'ai besoin de le montrer par rapport à l'affichage.
Comment puis-je le faire? Ou il y a un moyen plus simple de juste le popup juste centré?
Vous devez vous connecter pour publier un commentaire.
Ce centre de votre point de vue.
Il m'a fallu 2 heures de douleur pour comprendre cela. Je n'ai pas besoin de la magie noire mathématiques pour gérer cela.
Le point de vue est nécessaire que pour la fenêtre de jeton, il n'a pas d'autre impact sur la localisation.
Gravité raconte le layout manager par où commencer le système de coordonnées et la façon de traiter ces coordonnées. Je ne trouve pas de docs, mais le piratage est en me montrant que:
J'ai écrit ça ici Android PopupWindow.showAtLocation() et les effets de la Gravité
mPw.showAtLocation(v, Gravity.BOTTOM, 0, 0);
est-il d'accord sur xxhpi dispositif, comme le Nexus 5? J'ai eu des problème avec ça ...popupWindow.ShowAtLocation(anyViewOnlyNeededForWindowToken, GravityFlags.Center, 0, 0);