0

我想在Android中打開和關閉窗口時添加窗口過渡。Titanium:窗口過渡不適用於Android

爲Windows創建transistions在這裏的文檔描述: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, 
} 

既不淡入或淡出爲任一情況下的工作。

回答

1

葉海亞·烏丁

窗口轉變是不是在Android的作品,如果你想進行動畫處理的窗口,那麼你必須使用動畫與setTimeout的。和它的習俗。

+0

你什麼它不工作?這是一個錯誤嗎?有報道過哈斯嗎? –

1

你有兩個選擇

活動*躍遷

目前還沒有辦法用activity*Transitions沒有sharedElement。在https://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

相關問題