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。默认情况下,它将具有滑动效果。请参考此链接。