钛:左/右滑动窗口

钛:左/右滑动窗口

问题描述:

我想将当前打开的窗口滑动到左侧,并将新窗口从右侧滑动到屏幕上。我使用下面的代码,它不工作:钛:左/右滑动窗口

var newWindow = Titanium.UI.createWindow({ 
     url:'new.js', 
     backgroundImage:'ui/bg.gif', 
     zIndex: 10, 
     left: "100%", 
     width: "100%" 
    }); 


    var slide_it_left = Titanium.UI.createAnimation(); 
    slide_it_left.left = 0; // to put it back to the left side of the window 
    //slide_it_left.curve = Titanium.UI.ANIMATION_CURVE_LINEAR; 
    slide_it_left.duration = 500; 

    var slide_it_right = Titanium.UI.createAnimation(); 
    slide_it_right.left = "-100%"; 
    //slide_it_right.curve = Titanium.UI.ANIMATION_CURVE_LINEAR; 
    slide_it_right.duration = 500;  

    currentWindow.animate(slide_it_right); 
    newWindow.open(slide_it_left); 

然而,似乎有两个窗口之间20像素的空间,当他们在/滑出。我不知道这是怎么可能的,因为currentWindow的宽度为100%,也是新的。我尝试通过调整曲线/缓动来隐藏黑色空间,但没有好的结果,你仍然可以注意到他们之间的黑色空间无论如何。有任何想法吗?谢谢!

UPDATE: 通过使动画持续时间超慢,我注意到,在开始和结束时,他们完全对齐,但在它们之间没有。通过使动画非常快速,两个窗口之间的空间很大。这意味着缓动必须有一些事情发生。这应该会使动画不放松,否则:“Titanium.UI.ANIMATION_CURVE_LINEAR”。但不知何故,它不能解决问题..不知道宽松来自何处。

+0

文档您应该尝试使用NavigationGroup ,这是从左到右滑动的目的 – davitz38

+0

我认为这可能是Android的情况。 CUZ android在动画完成时调整其内部元素的大小。可能是我理解你的问题错了,但如果我是正确的,那么解决方法是尝试更新内部视图宽度以及动画。希望这可以帮助。 –

如果使用像素值设置窗口宽度和左/右,它会工作吗?

+0

不,不是真的。我尝试了不同的东西,没有一个真的起作用,所以最后我通过使用navgroup做“真正的”滑动的东西来解决它。 – dandoen

如果您使用选项卡,只需在同一选项卡中打开新窗口即​​可。

tab1.open(win,{animated:true}); 

不,它不会工作。无论如何,我在我的一个应用程序中有相同的要求,所以不是使用窗口,而是使用Views,并从右向左进行动画并使用App全局堆栈管理它们。希望这可以帮助。

+0

您可以改为使用ScrollableView。默认情况下它会有滑动效果。请参阅此链接。 http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ScrollableView – upendra

因为这个问题显示了这里搜索Appcelerator的向左滑动动画的顶部是什么工作对我来说

win.open({ 
    activityEnterAnimation: Ti.Android.R.anim.slide_in_left, 
    activityExitAnimation: Ti.Android.R.anim.slide_out_right 
}); 

入住这里

http://docs.appcelerator.com/platform/latest/#!/api/openWindowParams