Titanium 如何简单地处理方向变化?

Titanium 如何简单地处理方向变化?,titanium,appcelerator,appcelerator-mobile,Titanium,Appcelerator,Appcelerator Mobile,我不是说做什么花哨的事。我只希望当用户旋转设备时,标准窗口和视图可以旋转。您需要告诉窗口它应该支持哪些方向: Titanium.Gesture.addEventListener('orientationchange', function(e) { Titanium.API.info('Gesture Change Detected'); Ti.App.fireEvent('orientationchange', {eventObject:e}); }); var window

我不是说做什么花哨的事。我只希望当用户旋转设备时,标准窗口和视图可以旋转。

您需要告诉窗口它应该支持哪些方向:

Titanium.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info('Gesture Change Detected');
    Ti.App.fireEvent('orientationchange', {eventObject:e});
});
var window = Ti.UI.createWindow({
    orientationModes: [
        Ti.UI.LANDSCAPE_LEFT,
        Ti.UI.LANDSCAPE_RIGHT,
        Ti.UI.PORTRAIT,
        Ti.UI.UPSIDE_PORTRAIT
    ]
});

window.open();
然后,您可以使用如下侦听器来侦听方向的变化:

Ti.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info('Orientation changed');
});
编辑:我认为(尽管我从未尝试过)您也可以在tiapp.xml中设置它,这有自动应用于所有窗口的额外好处

<orientations device="iphone">
    <orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
    <orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
    <orientation>Ti.UI.PORTRAIT</orientation>
    <orientation>Ti.UI.UPSIDE_PORTRAIT</orientation>
</orientations>

Ti.UI.LANDSCAPE_左
Ti.UI.scape_右
人像
Ti.UI.Upper_肖像

这是安卓系统的默认设置。但不能在iphone上工作,所以只需编写以下代码

var win1 = Ti.UI.createWindow({
   title : 'Tab 1',
 orientationModes: [
        Ti.UI.LANDSCAPE_LEFT,
        Ti.UI.LANDSCAPE_RIGHT,
        Ti.UI.PORTRAIT,
        Ti.UI.UPSIDE_PORTRAIT
    ],
});

win1.open();

Ti.Gesture.addEventListener('orientationchange', function(e) {
    Titanium.API.info(Ti.Gesture.orientation);
});

一、 我认为这对您很有用。

因此,您必须获取事件,然后重新触发它,以便显示旋转?这是一种在我的每个视图中划分方向更改功能的方法。您不必重新触发事件,我认为您对tiapp.xml配置更改的看法是正确的。这就是我要找的。