钛:左/右滑动窗口
我想将当前打开的窗口滑动到左侧,并将新窗口从右侧滑动到屏幕上。我使用下面的代码,它不工作:钛:左/右滑动窗口
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”。但不知何故,它不能解决问题..不知道宽松来自何处。
如果使用像素值设置窗口宽度和左/右,它会工作吗?
不,不是真的。我尝试了不同的东西,没有一个真的起作用,所以最后我通过使用navgroup做“真正的”滑动的东西来解决它。 – dandoen
如果您使用选项卡,只需在同一选项卡中打开新窗口即可。
tab1.open(win,{animated:true});
不,它不会工作。无论如何,我在我的一个应用程序中有相同的要求,所以不是使用窗口,而是使用Views,并从右向左进行动画并使用App全局堆栈管理它们。希望这可以帮助。
您可以改为使用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
文档您应该尝试使用NavigationGroup ,这是从左到右滑动的目的 – davitz38
我认为这可能是Android的情况。 CUZ android在动画完成时调整其内部元素的大小。可能是我理解你的问题错了,但如果我是正确的,那么解决方法是尝试更新内部视图宽度以及动画。希望这可以帮助。 –