Titanium Android: как оживить модальное окно? - PullRequest
1 голос
/ 17 ноября 2011

Я разрабатываю приложение для Android на Titanium.В этом приложении мне нужно открыть модальное окно, для которого у меня есть следующий код:

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

Проблема здесь в том, что окно открывается во флэш-памяти без анимации.Я хотел бы, чтобы модальное окно сканировало снизу вверх при отображении на экране.Как я могу провести эту анимацию?Я также старался давать анимацию: true в window.open (), но не удалось.

1 Ответ

4 голосов
/ 19 ноября 2011

По умолчанию в Android нет анимации «снизу вверх». Вы можете получить анимацию «справа налево» по умолчанию, создав «тяжелое» окно. Смотрите в нижней части http://developer.appcelerator.com/doc/mobile/android/module_sdk

Однако в 1.7.5 SDK, похоже, есть ошибка, поэтому установка свойства 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.

...