2012-02-24 7 views
5

voglio che quando clicco sul mio MainView, voglio creare nuova finestra proprio dove ho toccato .Come ottenere il punto di contatto (in alto ea sinistra) a prescindere dai punti di vista, finestre in Titanio

Dire per es. Ho fatto clic su top:50 left:200, quindi la mia nuova finestra dovrebbe avviare solo da quel punto.

Voglio creare qualcosa come Popover in Titanium per android. Qualcuno può guidarmi?

Grazie in anticipo.

+0

vuoi dire che una finestra pop-up dovrebbe apparire al clic di un oggetto dal punto cliccato? Hai bisogno di animazione per questa transizione? – Triode

+0

Sì, lo voglio sul tavolo Visualizza ovunque dovrei creare LONGPRESS una vista Popup .... Se c'è animazione allora sarà anche bello ... – DShah

+0

Grazie DShah per aver offerto una taglia ... –

risposta

1

Per quanto riguarda l'ottenimento delle coordinate di tocco per la vista genitore, è necessario collegare il listener di eventi alla vista genitore (o entrambi se non è possibile ottenere la fonte e hanno bisogno di azioni diverse) perché se sono corretto l'evento di tocco (o qualsiasi altro evento che conta) dovrebbe propagarsi anche alle viste genitore/figlio. Quindi puoi semplicemente ottenere i valori e.source.top e e.source.left di cui hai bisogno.

+0

Ho una vista in cui ho un TableView. Ho dato l'evento di scorrimento su Visualizza. e Su tableView voglio dare un evento LONGPRESS. On LongPress la mia vista popup dovrebbe essere visualizzata al mio punto di contatto. – DShah

+0

@DShah: hai provato e.x, e.y? –

1

È possibile posizionare in questo modo PopupWindow, utilizzando il suo metodo showAtLocation.

Ciò consente di posizionare la finestra nella posizione desiderata, relativa alla propria vista principale. E sai dove l'utente ha fatto clic sulla tua vista principale.

+0

Come usare questo con Titanium ?? Puoi per favore guidarmi ?? – DShah

+0

Se hai letto attentamente la domanda, ho chiesto espressamente Titanium e non Android ... – DShah

3

considerare avete una finestra vittoria questo è andando a fuoco l'evento click del genere:

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

vostro popup potrebbe essere creato in quel modo:

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; 
    }; 

questo funziona a Android e iPhone . i valori migliori sembrano essere un po 'imprecisi, ma in generale funziona.