Animation 钛合金:左/右滑动窗口

Animation 钛合金:左/右滑动窗口,animation,titanium,appcelerator,Animation,Titanium,Appcelerator,我想将当前打开的窗口向左滑动,并将屏幕上的新窗口从右滑动到右。我使用以下代码来完成这项工作: var newWindow = Titanium.UI.createWindow({ url:'new.js', backgroundImage:'ui/bg.gif', zIndex: 10, left: "100%", width: "100%" }); var slide_it_left =

我想将当前打开的窗口向左滑动,并将屏幕上的新窗口从右滑动到右。我使用以下代码来完成这项工作:

    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);
然而,当两个窗口滑入/滑出时,两个窗口之间似乎有20px的空间。我不知道这是怎么可能的,因为currentWindow的宽度是100%,而新的也是。。我试图通过调整“曲线/缓和度”来隐藏该黑色空间,但效果不佳,无论发生什么情况,您仍然可以注意到它们之间存在一个黑色空间。有什么想法吗?谢谢

更新:
通过使动画持续时间超慢,我注意到在开始和结束时,它们是完全对齐的,但在两者之间不是。通过使动画速度非常快,两个窗口之间的空间很大。这意味着宽松政策肯定有问题。。这应该会使动画不放松,不是吗?:“Titanium.UI.animation\u CURVE\u LINEAR”。但不知何故,这并不能解决问题。。不知道从何而来。

如果使用像素值设置窗口宽度和左/右是否有效?

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

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

不,这行不通。无论如何,我在我的一个应用程序中有相同的要求,所以我没有使用窗口,而是使用视图,从右到左设置它们的动画,并使用应用程序全局堆栈管理它们。希望这有帮助。

因为这个问题显示在搜索appcelerator幻灯片的顶部,所以这里的动画对我来说很有用

win.open({
    activityEnterAnimation: Ti.Android.R.anim.slide_in_left,
    activityExitAnimation: Ti.Android.R.anim.slide_out_right
});
请在此处查看文档


不,不太可能。我尝试了不同的方法,但没有一种真正起作用,所以最后我用navgroup解决了这个问题,使用了“真正的”滑动功能。你应该尝试使用NavigationGroup,这就是从左向右滑动的目的。我想Android中可能就是这样。因为android在动画完成后会调整其所有内部元素的大小。可能我理解你的问题是错误的,但如果我是正确的,那么解决方案是尝试更新内部视图宽度以及动画。希望这有帮助。您可以使用ScrollableView。默认情况下,它将具有滑动效果。请参考此链接。