Как получить Touch point (сверху и слева) независимо от вида, окна в титаниуме - PullRequest
5 голосов
/ 25 февраля 2012

Я хочу, чтобы при нажатии на мой MainView я хотел создать новое окно именно там, где я коснулся .

Скажем, например, Я нажал на top:50 left:200, затем мое новое окно должно начинаться только с этой точки .

Я хочу создать что-то вроде Popover в Titanium для android. Кто-нибудь может просто направить меня?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 01 марта 2012

считают, что у вас есть окно победа , которое вызовет событие щелчка вот так:

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

Ваше всплывающее окно может быть создано так:

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

это работает на Android и Iphone. верхние значения кажутся немного неточными, но в целом это работает.

1 голос
/ 28 февраля 2012

Вы можете разместить таким образом PopupWindow , используя метод showAtLocation.

Это позволяет расположить окно в желаемом положении относительно вашего основного вида.И вы знаете, где пользователь нажал на ваш основной вид.

1 голос
/ 27 февраля 2012

Что касается получения координат касания для родительского представления, вы должны прикрепить прослушиватель событий к родительскому представлению (или к обоим, если вы не можете получить исходный код и нуждаетесь в других действиях), потому что, если я исправлю событие касанияили любое другое событие, которое имеет значение) также должно распространяться на родительские / дочерние представления.Тогда вы можете просто получить значения e.source.top и e.source.left, как вам нужно.

...