2012-02-24 12 views
5

Quiero que cuando hago clic en mi MainView, quiero crear una nueva ventana justo donde he tocado .Como llegar al punto de contacto (parte superior e izquierda), con independencia de las vistas, ventanas de titanio

Digamos que por ej. He hecho clic en top:50 left:200 luego mi nueva ventana debería comenzar desde ese punto solamente.

Quiero crear algo como Popover en Titanium para android. ¿Alguien puede guiarme?

Gracias de antemano.

+0

¿quiere decir que debe aparecer una ventana emergente al hacer clic en un objeto desde el punto al que se hace clic? ¿Necesitas animación para esta transición? – Triode

+0

Sí, quiero que en la tabla Ver donde sea que LONGPRESS se cree una vista emergente ... Si hay animación, entonces también será bueno ... – DShah

+0

Gracias DShah por ofrecer una recompensa ... –

Respuesta

1

Con respecto a obtener las coordenadas táctiles para la vista principal, debe adjuntar el detector de eventos a la vista principal (o ambas si no puede obtener la fuente y necesita diferentes acciones) porque si estoy correcto el evento táctil (o cualquier otro para el caso que importa) debe propagarse a las vistas de padres/hijos también. Entonces simplemente puede obtener los valores e.source.top y e.source.left según lo necesite.

+0

Tengo una Vista en la que tengo una TableView. He dado un evento de deslizamiento en Ver. y en tableView quiero dar el evento LONGPRESS. En LongPress, mi vista emergente debe mostrarse en mi punto de contacto. – DShah

+0

@DShah: ¿has probado e.x, e.y? –

1

Puede colocar de esta manera PopupWindow, utilizando su método showAtLocation.

Esto permite colocar la ventana en la posición deseada, relativa a su vista principal. Y sabe dónde hizo clic el usuario en su vista principal.

+0

¿Cómo usar esto con titanio? ¿Puedes por favor guiarme? – DShah

+0

Si lees la pregunta cuidadosamente, he pedido específicamente Titanium y no Android ... – DShah

3

considerar que tiene una ventana ganar eso va a disparar el evento click de esa manera:

win.addEventListener('click',function(e){ 
     var myPopUp = createPopUp({ 
      left: e.x, 
      top: e.y 
     }); 
     myPopUp.open(); 
    }); 

su emergente se podría crear de esa manera:

createPopUp = function(_args){ 
     var popup = Titanium.UI.createWindow({ 
       backgroundColor: 'red', /* a backgroundImage could be better */ 
       height: '250dp', 
       width: '250dp', 
       top: _args.top, /* manually adjusted */ 
       left: _args.left, 
       opacity: 0.7 /* for a nice transparency*/ 
     }); 

     return popup; 
    }; 

esto funciona en Android y iPhone . los valores principales parecen ser un poco imprecisos, pero en general funciona.

Cuestiones relacionadas