Titanium:Window 转换在 Android 上不起作用
Titanium: Window transitions not working on Android
我想在 Android 中打开和关闭 window 时添加 window 转换。
在此处的文档中描述了为 Windows 创建转换:http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window
foo.js 有以下 tss 文件:
"#win": {
theme: "Theme.AppCompat.Translucent.NoTitleBar",
fullscreen: false, // To make it heavy-weight (although this should not be needed for > v3.2.0)
}
我试过以下方法:
方法一
Alloy.createController('foo')
.getView().open({
activityEnterAnimation: Ti.Android.R.anim.fade_in,
activityExitAnimation: Ti.Android.R.anim.fade_out
});
上面的进入动画按预期工作。但是,淡出不起作用。
方法二
Alloy.createController('foo')
.getView().open({
activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN,
activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT
});
淡入淡出均无效
方法三
"#win[platform=android]": {
activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN,
activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT,
// OR
// activityEnterAnimation: Ti.Android.R.anim.fade_in,
// activityExitAnimation: Ti.Android.R.anim.fade_out,
}
无论哪种情况,淡入淡出都不起作用。
叶海亚乌丁
window 过渡在 android 中不起作用,如果您想为 windows 设置动画,则必须使用带有 settimeout 的动画。及其习俗。
你有两个选择
activity*过渡
目前无法在没有共享元素的情况下使用 activity*Transitions
。 https://jira.appcelerator.org/browse/TIMOB-20507 处有一张显示修复的公开票(需要针对第一个 window 进行调整,或者如果您使用修复,则在打开第一个 window 时添加 animated:false
) .
activity*动画
activity*Animation
动画是这样工作的:
var win = Ti.UI.createWindow({
backgroundColor: '#fff'
});
var win2 = Ti.UI.createWindow({
backgroundColor: '#f00'
});
var btn = Ti.UI.createButton({
title: "open"
});
win.add(btn);
var btn2 = Ti.UI.createButton({
title: "close"
});
win2.add(btn2);
btn2.addEventListener("click", function() {
win2.close({
activityExitAnimation: Ti.Android.R.anim.fade_out
});
});
btn.addEventListener("click", function() {
win2.open({
activityEnterAnimation: Ti.Android.R.anim.fade_in,
activityExitAnimation: Ti.Android.R.anim.fade_out
});
});
win.open();
使用 6.1.2.GA 和 6.2.2.GA
进行了测试
activity*转换
的解决方法
activity*Transitions
的工作方式如下:
var win = Ti.UI.createWindow({
backgroundColor: '#fff',
activityEnterTransition: Titanium.UI.Android.SLIDE_RIGHT,
activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE
});
var win2 = Ti.UI.createWindow({
backgroundColor: '#f00',
activityEnterTransition: Titanium.UI.Android.SLIDE_RIGHT,
activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE
});
// Create label in window A with a unique transitionName.
var titleInWinA = new Ti.UI.createLabel({
text: 'Top 10 pics from Mars!',
left: 70,
top: 6,
width: 200,
height: 30,
transitionName: 'title',
color: "#000"
});
win.add(titleInWinA);
var btn = Ti.UI.createButton({
title: "open"
});
btn.addEventListener("click", function() {
win2.addSharedElement(titleInWinA, "title");
win2.open();
});
win.add(btn);
win.open();
var titleInWinB = new Ti.UI.createLabel({
text: 'Top 10 pics from Mars!',
left: 50,
top: 10,
width: 200,
height: 30,
transitionName: 'title',
color: "#000"
});
win2.add(titleInWinB);
请记住,它们是 window 的 creation only
属性,并不像 activity*Animation
那样用作 window.open()
的参数
我想在 Android 中打开和关闭 window 时添加 window 转换。
在此处的文档中描述了为 Windows 创建转换:http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window
foo.js 有以下 tss 文件:
"#win": {
theme: "Theme.AppCompat.Translucent.NoTitleBar",
fullscreen: false, // To make it heavy-weight (although this should not be needed for > v3.2.0)
}
我试过以下方法:
方法一
Alloy.createController('foo')
.getView().open({
activityEnterAnimation: Ti.Android.R.anim.fade_in,
activityExitAnimation: Ti.Android.R.anim.fade_out
});
上面的进入动画按预期工作。但是,淡出不起作用。
方法二
Alloy.createController('foo')
.getView().open({
activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN,
activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT
});
淡入淡出均无效
方法三
"#win[platform=android]": {
activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN,
activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT,
// OR
// activityEnterAnimation: Ti.Android.R.anim.fade_in,
// activityExitAnimation: Ti.Android.R.anim.fade_out,
}
无论哪种情况,淡入淡出都不起作用。
叶海亚乌丁
window 过渡在 android 中不起作用,如果您想为 windows 设置动画,则必须使用带有 settimeout 的动画。及其习俗。
你有两个选择
activity*过渡
目前无法在没有共享元素的情况下使用 activity*Transitions
。 https://jira.appcelerator.org/browse/TIMOB-20507 处有一张显示修复的公开票(需要针对第一个 window 进行调整,或者如果您使用修复,则在打开第一个 window 时添加 animated:false
) .
activity*动画
activity*Animation
动画是这样工作的:
var win = Ti.UI.createWindow({
backgroundColor: '#fff'
});
var win2 = Ti.UI.createWindow({
backgroundColor: '#f00'
});
var btn = Ti.UI.createButton({
title: "open"
});
win.add(btn);
var btn2 = Ti.UI.createButton({
title: "close"
});
win2.add(btn2);
btn2.addEventListener("click", function() {
win2.close({
activityExitAnimation: Ti.Android.R.anim.fade_out
});
});
btn.addEventListener("click", function() {
win2.open({
activityEnterAnimation: Ti.Android.R.anim.fade_in,
activityExitAnimation: Ti.Android.R.anim.fade_out
});
});
win.open();
使用 6.1.2.GA 和 6.2.2.GA
进行了测试activity*转换
的解决方法activity*Transitions
的工作方式如下:
var win = Ti.UI.createWindow({
backgroundColor: '#fff',
activityEnterTransition: Titanium.UI.Android.SLIDE_RIGHT,
activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE
});
var win2 = Ti.UI.createWindow({
backgroundColor: '#f00',
activityEnterTransition: Titanium.UI.Android.SLIDE_RIGHT,
activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE
});
// Create label in window A with a unique transitionName.
var titleInWinA = new Ti.UI.createLabel({
text: 'Top 10 pics from Mars!',
left: 70,
top: 6,
width: 200,
height: 30,
transitionName: 'title',
color: "#000"
});
win.add(titleInWinA);
var btn = Ti.UI.createButton({
title: "open"
});
btn.addEventListener("click", function() {
win2.addSharedElement(titleInWinA, "title");
win2.open();
});
win.add(btn);
win.open();
var titleInWinB = new Ti.UI.createLabel({
text: 'Top 10 pics from Mars!',
left: 50,
top: 10,
width: 200,
height: 30,
transitionName: 'title',
color: "#000"
});
win2.add(titleInWinB);
请记住,它们是 window 的 creation only
属性,并不像 activity*Animation
window.open()
的参数