Эквивалент гиперссылки

Я думаю, что могу применить слишком много своего обычного контекста (разработка веб-приложений) к новому мобильному проекту с использованием Titanium. У меня есть домашний экран с несколькими кнопками. Мне нужно, чтобы каждая кнопка открывала новое окно с совершенно новым содержимым. В своей голове я просто предполагал, что окна будут работать как запросы или страницы, в которых создание и открытие нового окна полностью заменит существующий контент новым. Кажется, это не так (или я делаю что-то ужасно, ужасно неправильно). На моем домашнем экране вот обработчик события для одной кнопки:

btn_er_app.addEventListener( 'click', function( e ) {
    var win = Ti.UI.createWindow({
        bottom: 0,
        title: 'Next "Page"',
        top: 0,
        url: 'next_page.js',
    });
    win.open({ animated: true });
});

Моя next_page.js страница выглядит так (фрагмент):

var win = Ti.UI.currentWindow;
win.layout = 'vertical';

var header = Ti.UI.createView({
    backgroundColor: '#f00', 
    height: 60,
    top: 0, 
});
win.add( header );

var body = Ti.UI.createView({
    backgroundColor:'#000',
    backgroundImage: '/images/body.png',
});
var label = Ti.UI.createLabel({
    text: 'Page Bits Go Here',
    textAlign: 'center',
});
body.add( label );

win.add( body );

Я обнаружил, что содержимое главного экрана все еще видно. Отображается красный блок заголовка, но не вид тела. Я пытался установить свойства: height: '100%', bottom: 0, height: 'auto' и даже установить значение fullscreen нового окна в true, но ничего не работает.

Во-первых, как работает «связывание» в мобильном пространстве? Я действительно думаю, что весь мой мыслительный процесс по этому поводу должен быть перестроен, и, во-вторых, что мне нужно сделать, чтобы мое новое окно полностью скрывало основное окно домашнего экрана?

Спасибо за вашу помощь.


person Rob Wilkerson    schedule 14.10.2011    source источник


Ответы (1)


Вы должны не заменить окно, а фактически создать новое и позволить ему открыться.

В зависимости от того, чего вы пытаетесь достичь, вам, вероятно, следует создать модальное окно.

Вот как:

var newWin = Ti.UI.createWindow({
    modal: true,
    title: 'new Window',
    navBarHidden: false
});

// adding a button to close the window again:

var button = Ti.UI.createButton({
    title: 'Close'
});

button.addEventListener('click',function(){
    newWin.close();
    newWin.hide();
});

win.leftNavButton = button;

newWin.open();

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

person Rene Pot    schedule 14.10.2011