I'm not talking about doing anything fancy. I'd just like the standard windows and views to rotate when the user rotates the device.
If you want to manually handle orientation changes in your app you must declare the "orientation" , "screenSize" , and "screenLayout" values in the android:configChanges attributes. You can declare multiple configuration values in the attribute by separating them with a pipe | character.
If orientation changes is not handle properly then it results unexpected behavior of the application. When such changes occurs, Android restarts the running Activity means it destroy and again created.
When you rotate your device and the screen changes orientation, Android usually destroys your application's existing Activities and Fragments and recreates them . Android does this so that your application can reload resources based on the new configuration.
You need to tell the window which orientations it should support:
var window = Ti.UI.createWindow({
orientationModes: [
Ti.UI.LANDSCAPE_LEFT,
Ti.UI.LANDSCAPE_RIGHT,
Ti.UI.PORTRAIT,
Ti.UI.UPSIDE_PORTRAIT
]
});
window.open();
You can then listen on the orientation changes with a listener like so:
Ti.Gesture.addEventListener('orientationchange', function(e) {
Titanium.API.info('Orientation changed');
});
Edit: I think (though I've never tried it) you can also set this in tiapp.xml, which has the added benefit of applying to all windows automatically.
<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>
Titanium.Gesture.addEventListener('orientationchange', function(e) {
Titanium.API.info('Gesture Change Detected');
Ti.App.fireEvent('orientationchange', {eventObject:e});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With