двойное открытие окон с использованием HTTP-клиента на Titanium Appcelerator - PullRequest
1 голос
/ 12 декабря 2011

В моем текущем приложении для Android у меня есть HTTP-клиент, который отправляет запрос на веб-сайт, а ответ JSON превращается в табличное представление. Я заметил, что когда я открываю окно результатов и перемещаю прокрутку по таблице, у меня фактически есть две идентичные таблицы одна поверх другой. Еще одна проблема, которую я заметил, заключается в том, что когда я нажимаю кнопку «Android»: «Назад», окно закрывается, и я получаю пустое черное окно, чтобы получить исходный основной вид, мне нужно снова нажать кнопку «Назад». здесь добавлены код главного окна и страница результатов поиска . спасибо большое!

- тот же вопрос опубликован в [appcelerator Q & A]

хорошо, поток такой: 1. открывается главное окно (win 1), в нем есть панель поиска и 2 кнопки. каждая кнопка открывает разные версии одного и того же окна (победа 2).

  1. win 2 имеет панель поиска и несколько кнопок.

если строка поиска в любом окне (1 или 2) заполнена и выполнена, открывается третье окно (выигрыш 3).

  1. в этом окне HTTP-клиент (xhr) отправляет правильный запрос, а текст ответа (JSON) анализируется, а затем заполняет табличное представление (tv).

табличное представление появляется дважды один над другим, и когда я добавляю событие, которое предупреждает окно, в котором оно находится, я получаю окно предупреждения «Вы находитесь в окне поиска» дважды.

когда я нажимаю кнопку возврата, я получаю пустое белое окно. если я нажимаю кнопку «Назад» еще раз, я возвращаюсь к исходному окну, из которого я пришел.

- обновление: я переписал все это, но ничего не происходит.

---- обновление: я добавил флаг, чтобы функция «onload» не вызывалась дважды, но это всего лишь взлом. Я ищу более фундаментальный ответ

1 Ответ

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

Во-первых, об 'открытом' событии, которое запускается дважды.В версии 1.8.0.1 была ошибка, когда дважды вызывалось событие open ( bugtracker ), но это было исправлено в версии 1.8.1 ( changelog ).Я протестировал новую версию, и все работает хорошо - событие «open» запускается только один раз.

Во-вторых, о кнопке «Назад».Как я вижу в вашем коде вы используете tab.open.Вы можете использовать «открыть» непосредственно для окна, а не для вкладки.А для iPhone вы можете создать навигационную группу ( wiki ).Также не забудьте использовать окно HeavyWeight, чтобы заставить работать кнопку «назад».Для этого вы добавляете свойство modal: true, но пытаетесь использовать fullscreen: false.

...