2011-09-16 7 views

Respuesta

65

Después de hackear por algunas horas probando algunas matemáticas de magia negra para calcular centros y tratar de alinear la vista usando Gravity.TOP Encontré una publicación que usaba Gravity.CENTER. Estoy recogiendo mis hallazgos aquí con la esperanza de que le ahorre algo a alguien más.

popupWindow.showAtLocation(anyViewOnlyNeededForWindowToken, Gravity.CENTER, 0, 0); 

La vista sólo es necesaria para el token de ventana, que no tiene otro impacto en la ubicación.

Gravity le dice al administrador de disposición dónde iniciar el sistema de coordenadas y cómo tratar esas coordenadas. No puedo encontrar los documentos, pero la piratería me muestra que:

  • CENTER utiliza el centro de la ventana emergente que se alineará con la x, y especificada. Entonces 0,0 está centrado en la pantalla, sin ajustes para el tamaño de la barra de notificaciones.

Gravity.CENTER 0,0

  • BOTTOM utiliza la parte inferior de la ventana emergente para estar alineado con la x, y especificada. Entonces 0,0 tiene el fondo emergente alineado con la parte inferior de la pantalla. Si quiere 10px relleno, entonces y = 10 (no -10) para mover la ventana emergente 10 píxeles.

Gravity.BOTTOM 0,10

  • TOP utiliza la parte superior de la ventana emergente para estar alineado con la x, y especificada. Entonces, 0,0 tiene el encabezado emergente alineado con la parte superior de la pantalla. Si quieres 10px relleno, entonces y = 10. NOTA Si no está en modo de pantalla completa, también debe hacer ajustes para la barra de notificaciones.

Gravity.TOP 0,48

  • Gravity.LEFT y Gravity.RIGHT debería ser obvio ahora, por ejemplo mis imágenes son demasiado grandes para caber en la pantalla para que se sujetan al tamaño de pantalla menos el acolchado I estoy usando
Cuestiones relacionadas