2012-02-24 14 views
5

chcę, że po kliknięciu na moim MAINVIEW, chcę tworzyć nowe okno tylko gdzie mam dotknął.Jak zdobyć punktu próbkowania (górny i lewy), niezależnie od poglądów, okna w Tytan

Powiedz np. kliknąłem na top:50 left:200, a następnie moje nowe okno powinny zacząć od tego punktu tylko.

Chcę utworzyć coś takiego, jak Popover w Titanium dla android. Czy ktoś może mnie poprowadzić?

Z góry dziękuję.

+0

masz na myśli to, że wyskakujące okno powinno pojawić się na kliknięciu obiektu z klikniętego punktu? Czy potrzebujesz przejściowej animacji? – Triode

+0

Tak, chcę tego na stole Zobacz gdziekolwiek I LONGPRESS powinien zostać utworzony widok Pop Up ... Jeśli jest animacja to również będzie dobrze ... – DShah

+0

Dziękuję DShah za oferowanie nagrody ... –

Odpowiedz

1

Jeśli chodzi o uzyskiwanie współrzędnych dotykowych dla widoku macierzystego, należy dołączyć detektor zdarzeń do widoku macierzystego (lub oba, jeśli nie można uzyskać źródła i wymagają różnych działań), ponieważ jeśli mam poprawne wydarzenie dotykowe (lub jakiekolwiek inne wydarzenie, które ma znaczenie) powinny być również propagowane do widoków nadrzędny/podrzędny. Następnie możesz po prostu uzyskać wartości e.source.top i e.source.left według potrzeb.

+0

Mam Widok, w którym mam TableView. Nadałem zdarzenie przeciągnięcia w widoku. i Na tableView chcę wydać LONGPRESS. Na LongPress mój wyskakujący widok powinien być wyświetlany w moim punkcie kontaktu. – DShah

+0

@DShah: czy próbowałeś e.x, e.y? –

1

Możesz umieścić w ten sposób PopupWindow, używając metody showAtLocation.

Umożliwia to umieszczenie okna w żądanej pozycji względem widoku głównego. I wiesz, gdzie użytkownik kliknął w główny widok.

+0

Jak korzystać z Titanium? Czy możesz mnie poprowadzić? – DShah

+0

Jeśli czytasz pytanie dokładnie, poprosiłem o Titanium, a nie androida ... – DShah

3

rozważyć masz okno wygrać ów zamiar ognia zdarzenie click tak:

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

wyskakujących mogą być tworzone tak:

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

to działa na Android i iPhone . najwyższe wartości wydają się być trochę nieprecyzyjne, ale generalnie działają.

Powiązane problemy