2011-03-16 8 views

Respuesta

10

tiene que decirle a la ventana, que Orientaciones debe apoyar:

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

window.open(); 

entonces usted puede escuchar en los cambios de orientación con un oyente de este modo:

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

Edit: Creo que (aunque nunca lo he probado) también puede establecer esto en tiapp.xml, que tiene el beneficio adicional de aplicar automáticamente a todas las ventanas.

<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

Creo que tiene razón sobre el cambio de configuración de tiapp.xml. Eso es lo que estaba buscando. – Dogweather

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

Entonces, uno debe tomar el evento, y luego volver a dispararlo, para que la pantalla gire? – Dogweather

+1

este es un enfoque para dividir en compartimentos la funcionalidad de un cambio de orientación en cada una de mis vistas. No tiene que volver a desencadenar el evento –

1

esto es trabajo en Android predeterminado. Pero no funciona en el iPhone, así que simplemente escriba este código

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); 
}); 

I, THINK THIS ES ÚTIL PARA USTED.

Cuestiones relacionadas