1

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

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

这里的问题是窗口在没有任何动画的情况下快速打开。我想让模态窗口出现在屏幕上时从下到上爬行。我怎样才能执行这个动画?我也确实在 window.open() 中给出了动画:true,但没有成功。

4

1 回答 1

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:trueanimated:false,窗口将在您打开和关闭时出现和消失。

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

于 2011-11-19T10:49:10.923 回答