Titanium:窗口转换不适用于Android

时间:2017-09-20 19:47:42

标签: android titanium appcelerator appcelerator-titanium titanium-alloy

我想在Android中打开和关闭窗口时添加窗口过渡。

在此处的文档中描述了为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)
}

我尝试过以下方法:

方法1

Alloy.createController('foo')
    .getView().open({
        activityEnterAnimation: Ti.Android.R.anim.fade_in,
        activityExitAnimation: Ti.Android.R.anim.fade_out
    });

以上输入动画按预期工作。但是,淡出效果不起作用。

方法2

Alloy.createController('foo')
    .getView().open({
        activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN,
        activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT
    });

淡入或淡出无效

方法3

"#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,
}

无论是淡入还是淡出都不适用于任何一种情况。

2 个答案:

答案 0 :(得分:2)

您有两个选择

<强>活性*跃迁

如果没有sharedElement,目前无法使用activity*Transitionshttps://jira.appcelerator.org/browse/TIMOB-20507处有一个打开的票证,显示修复(需要针对第一个窗口进行调整,或者在打开第一个窗口时添加animated:false,如果您使用此修复程序)。

<强>活性*动画

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*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);

请注意,它们是creation only窗口的属性,不会用作window.open()的参数activity*Animation

答案 1 :(得分:1)

Yahya Uddin

窗口过渡在android中不起作用,如果要为窗口设置动画,则必须使用settimeout动画。和它的习惯。