2011-03-16 51 views

回答

10

你需要告訴它的方向就應該支持窗口:

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

編輯:

var window = Ti.UI.createWindow({ 
    orientationModes: [ 
     Ti.UI.LANDSCAPE_LEFT, 
     Ti.UI.LANDSCAPE_RIGHT, 
     Ti.UI.PORTRAIT, 
     Ti.UI.UPSIDE_PORTRAIT 
    ] 
}); 

window.open(); 

然後,您可以在向監聽器的方向變化,像這樣聽我想想(雖然我從來沒有嘗試過),你也可以在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> 
+0

我認爲您對tiapp.xml配置更改是正確的。這就是我一直在尋找的。 – Dogweather 2011-03-16 22:18:04

1
Titanium.Gesture.addEventListener('orientationchange', function(e) { 
    Titanium.API.info('Gesture Change Detected'); 
    Ti.App.fireEvent('orientationchange', {eventObject:e}); 
}); 
+0

所以 - 一個人必須接受事件,然後重新啓動它,以便顯示器旋轉? – Dogweather 2011-03-16 11:51:22

+1

這是一種用於在每個視圖中劃分方向更改功能的方法。您不必重新啓動事件 – 2011-03-19 05:15:21

1

這是android默認的工作。但不適用於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); 
}); 

我,認爲這對你很有用。