Меню лайков Facebook Appcelerator Titanium

в данный момент я разрабатываю приложение, в котором я хочу использовать Facebook Like Menü отсюда:

https://github.com/mpociot/titanium-facebook-slide-menu

// ALPHABYTES

// Facebook like menu window
var leftMenu    = Ti.UI.createWindow({
    backgroundColor: 'red',
    top:   0,
    left:  0,
    width: 150,
    zIndex: 1
});
var data = [{title:"Row 1"},{title:"Row 2"},{title:"Row 3"},{title:"Row 4"}];
var tableView   = Ti.UI.createTableView({ data: data });
leftMenu.add(tableView);
leftMenu.open();

// Facebook like menu window
var rightMenu   = Ti.UI.createWindow({
    backgroundColor: 'red',
    top:   0,
    right:  0,
    width: 150,
    zIndex: 1
});
var data = [{title:"Row 1"},{title:"Row 2"},{title:"Row 3"},{title:"Row 4"}];
var tableView   = Ti.UI.createTableView({ data: data });
rightMenu.add(tableView);
rightMenu.open();

// animations
var animateLeft = Ti.UI.createAnimation({
    left: 150,
    curve: Ti.UI.iOS.ANIMATION_CURVE_EASE_OUT,
    duration: 500
});
var animateRight    = Ti.UI.createAnimation({
    left: 0,
    curve: Ti.UI.iOS.ANIMATION_CURVE_EASE_OUT,
    duration: 500
});
var animateNegativeLeft = Ti.UI.createAnimation({
                left: -150,
                curve: Ti.UI.iOS.ANIMATION_CURVE_EASE_OUT,
                duration: 500
});


var win = Titanium.UI.createWindow({
    left: 0,
    zIndex: 10
});
var win1 = Titanium.UI.createWindow({
    backgroundColor: 'white',
    title: 'Facebook menu',
    left: 0,
    zIndex: 10
});
var nav = Titanium.UI.iPhone.createNavigationGroup({
   window: win1,
   left: 0,
   width: Ti.Platform.displayCaps.platformWidth
});
var button = Ti.UI.createButton({
    title: 'm',
    left: 10,
    width: 30,
    height: 30,
    top: 10
});
var button2 = Ti.UI.createButton({
    title: 'm',
    right: 10,
    width: 30,
    height: 30,
    top: 10
});
var touchStartX = 0;
var touchStarted = false;
win1.addEventListener('touchstart',function(e){
    touchStartX = parseInt(e.x,10);
});
win1.addEventListener('touchend',function(e){
    touchStarted = false;
    if( win.left < 0 ){
        if( win.left <= -140 ){
            win.animate(animateNegativeLeft);
            isToggled = true;
        } else {
            win.animate(animateRight);
            isToggled = false;
        }
    } else {
        if( win.left >= 140 ){
            win.animate(animateLeft);
            isToggled = true;
        } else {
            win.animate(animateRight);
            isToggled = false;
        }
    }
});
win1.addEventListener('touchmove',function(e){
    var x       = parseInt(e.globalPoint.x, 10);
    var newLeft = x - touchStartX;
    if( touchStarted ){
        if( newLeft <= 150 && newLeft >= -150)
        win.left    = newLeft;
    }
    // Minimum movement is 30
    if( newLeft > 30 || newLeft < -30 ){
        touchStarted = true;
    }
});
nav.add(button);
nav.add(button2);
win.add(nav);
win.open();


var isToggled = false;
button.addEventListener('click',function(e){
    if( !isToggled ){
        win.animate(animateLeft);
        isToggled = true;
    } else {
        win.animate(animateRight);
        isToggled = false;
    }
});

button2.addEventListener('click',function(e){
    if( !isToggled ){
        win.animate(animateNegativeLeft);
        isToggled = true;
    } else {
        win.animate(animateRight);
        isToggled = false;
    }
});

Я также реализовал меню, и все работает, как ожидалось.

Теперь моя проблема заключается в следующем: если я нажму в левом меню, например, «Строка 1» (у меня «Настройки»), я хочу, чтобы мое меню настроек отображалось в главном окне. Как это сделать?

Если я создам новое окно и открою его, я получу полностью новое окно без меню facebook слева и кнопок ... Я не знаю, как это сделать?!?! Кто-нибудь может помочь?

Спасибо, Саша


person codeworxx    schedule 04.06.2012    source источник


Ответы (2)


Надеюсь, я правильно понял ваш вопрос, но я бы открывал новые окна как виды внутри главного окна. Вот код: https://gist.github.com/manumaticx/4961175

Или вы хотите изменить меню? Тогда вы бы сделали то же самое с левым окном меню!

person manumaticx    schedule 15.02.2013

person    schedule
comment
Пожалуйста, добавьте документацию / комментарии к вашему решению. Если это разумно, разбейте его на более мелкие блоки кода вместо 1 гигантской прокручиваемой области. - person Chris Marisic; 05.08.2014
comment
Сам код довольно прост, просто скопируйте и запустите. Остальное можно узнать, просто поигравшись .. :) - person Dijin Satheesan; 05.08.2014