Прокручиваемый вид Titanium между одними и теми же видами

Я хочу показать представление с некоторыми данными о текущем дне и разрешить пользователю вернуться к предыдущим дням.

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

Как это сделать проще всего?

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

Я использую это:

var scrollableView = Ti.UI.createScrollableView({
    views : [view1, view1, view1],
    showPagingControl : true
});

Но это не работает, отображается только первый вид1.

Другой способ, который я нашел, - это создание разных представлений и загрузка правильного представления. Это работает, но мне приходится дублировать много кода (интерфейс будет одинаковым в разных представлениях, он только меняет данные) и, конечно, это не лучший способ.

Вы знаете, как я могу это сделать?

заранее спасибо


person A.Vila    schedule 16.07.2013    source источник


Ответы (1)


Используйте модуль commonJS, который обертывает представление, а затем измените параметры представления, вот быстрый пример:

// myView.js
function MyView(title, color) {
    var self = Ti.UI.createView({backgroundColor : color});
    var label = Ti.UI.createLabel({text: 'A simple label'});
    // Add other components to your custom view
    self.add(label);
    return self;
}

// Dont forget this!
module.exports = MyView;

Теперь вам потребуется пользовательский модуль и используйте его в прокручиваемом представлении:

var MyView = require('MyView');
var scrollableView = Ti.UI.createScrollableView({
    views : [new MyView("View 1", "red"), new MyView("View 2", "green"), new MyView("View 3", "blue")],
    showPagingControl : true
});
person Josiah Hester    schedule 16.07.2013
comment
Спасибо большое. Я пробовал это, но получил сообщение об ошибке: «[object Object]» не является конструктором. В чем проблема? Спасибо - person A.Vila; 17.07.2013
comment
Ой, я забыл добавить module.exports.. Попробуйте с отредактированным кодом! - person Josiah Hester; 17.07.2013