Titanium Android:如何为模态窗口设置动画?

时间:2011-11-17 11:56:44

标签: android android-animation titanium-mobile

我正在为Titanium开发一款Android应用程序。在这个应用程序中,我需要打开一个模态窗口,我有以下代码。

var window = Ti.UI.createWindow({
  title: "This is modal window"
});
// Add some elements to window
window.open({modal: true});

这里的问题是窗口在没有任何动画的情况下闪烁。我希望模态窗口在屏幕上显示时从下到上爬行。我该如何进行这个动画?我也在修改动画:在window.open()中为true,但没有成功。

1 个答案:

答案 0 :(得分:4)

默认情况下,Android中没有“自下而上”的动画。默认情况下,您可以通过创建“重量级”窗口来获得“从右到左”的动画。请参阅http://developer.appcelerator.com/doc/mobile/android/module_sdk

的底部

但是,SDK的1.7.5中似乎存在一个错误,因此在创建时设置窗口的modal:true属性默认情况下不会显示动画。但是您可以使用上面链接中描述的任何其他属性来制作重量级窗口,并显示动画。下面是一些代码,它们将显示在Android 2.1和Appcelerator Mobile 1.7.5中打开的默认动画窗口:

var win1 = Titanium.UI.createWindow({  
    title:'Win 1',
    backgroundColor:'#fff',
    exitOnClose : true
});

var button = Ti.UI.createButton({
    title: 'open',
    width:'80dp',
    height:'40dp'
});

button.addEventListener('click', function(){
    var win2 = Ti.UI.createWindow({
        title:'Example',
        backgroundColor:'blue',
        windowSoftInputMode:Ti.UI.Android.SOFT_INPUT_ADJUST_UNSPECIFIED  //** important to make a heavyweight window
    });
    win2.open({animated:true});
});

win1.add(button);
win1.open();

如果您将animated:true更改为animated:false,则只会在您打开和关闭时显示和消失窗口。

您可以尝试创建自己的动画,以便在打开窗口时从底部向上滑动窗口,但我从未在Android / Appcelerator上尝试过。