我想将当前打开的窗口向左滑动,然后将新窗口从右侧滑动到屏幕上。我使用以下代码来完成工作:
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_CURVE_LINEAR”。但不知怎的,它并没有解决问题。不知道缓和来自何处。
答案 0 :(得分:2)
如果您使用标签,只需在同一标签中打开新窗口。
tab1.open(win,{animated:true});
答案 1 :(得分:1)
如果您将窗口宽度和左/右设置为像素值,它是否有效?
答案 2 :(得分:0)
不,它不会起作用。无论如何我在我的一个应用程序中有相同的要求,所以不使用窗口我使用了视图并从右到左动画它们并使用App全局堆栈管理它们。希望这会有所帮助。
答案 3 :(得分:0)
由于此问题显示在搜索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