【原文】
Handling Device Orientation
Run-time Device Orientation Detection
You can detect the current device orientation by checking value of the Ti.UI.orientation property. This value will match one of the orientation constants defined under the Ti.UI namespace:
- Ti.UI.PORTRAIT
- Ti.UI.UPSIDE_PORTRAIT
- Ti.UI.LANDSCAPE_LEFT
- Ti.UI.LANDSCAPE_RIGHT
An example use of this property might be to define helper functions to determine if the device is in a landscape or portrait orientation:
Ti.Gesture.isLandscape = function (orient) {
orient = orient || Ti.UI.orientation;
return orient == Ti.UI.LANDSCAPE_LEFT || orient == Ti.UI.LANDSCAPE_RIGHT;
};
Ti.Gesture.isPortrait = function (orient) {
orient = orient || Ti.UI.orientation;
return orient == Ti.UI.PORTRAIT || orient == Ti.UI.UPSIDE_PORTRAIT;
};
Handling Orientation Changes
Orientation changes can be detected by attaching an event listener for orientationchange event in the Ti.Gesture module:
Ti.Gesture.addEventListener('orientationchange', function (e) {
// Put your handling code here
});
The updated device orientation can be read from orientation property of the event object passed to the callback, which will be defined as one of:
- Ti.UI.PORTRAIT
- Ti.UI.UPSIDE_PORTRAIT
- Ti.UI.LANDSCAPE_LEFT
- Ti.UI.LANDSCAPE_RIGHT
Using our helper function above, you might use the following code to redraw your application UI based on device orientation:
Ti.Gesture.addEventListener('orientationchange', function (ev) {
if (Ti.Gesture.isLandscape(ev.orientation)) {
// Update your UI for landscape orientation
} else {
// Update your UI for portrait orientation
}
});
Changing Device Orientation Programmatically
There are two ways of changing the device orientation in JavaScript. One can modify Ti.UI global value or limit the number of supported orientations for a given window object.
Changing the global orientation
First, you can change it directly by updating the value of Ti.UI.orientation property with the appropriate orientation constant:
Ti.UI.orientation = Ti.UI.PORTRAIT;
This approach is recommended if you need to permanently change device orientation and stick to it. You can accomplish the same thing using the orientation section of the tiapp.xml file (for iOS).
Limiting supported orientation modes for a given window
You can limit allowed orientations for a Window object. Then device will go into the desired orientation whenever the window is opened:
var win = Ti.UI.createWindow({
width: '100%',
height: '100%',
orientationModes: [
Titanium.UI.LANDSCAPE_LEFT,
Titanium.UI.LANDSCAPE_RIGHT
]
});
This specific window will support only landscape mode, so whenever you call win.open() or Ti.UI.currentTab.open(win) the device will go landscape. Whenever you close close the window (or user navigate back using navigation controller) the screen will return back to the actual physical orientation of the device.
You can also update orientationModes of existing windows (including the opened one):
Ti.UI.currentWindow.orientationModes = [
Titanium.UI.LANDSCAPE_LEFT,
Titanium.UI.LANDSCAPE_RIGHT
];
分享到:
相关推荐
3. **定义拖动代理**:这是iOS原生的一部分,但在Titanium中,你可能需要创建一个JavaScript对象来模拟这个代理,处理拖动过程中的事件,如开始拖动、拖动中和结束拖动。 4. **创建放置目标**:这涉及设置其他可以...
Google-Cloud-Messaging--Titanium-, 在 Titanium 中,Google云消息传递 Google-Cloud-Messaging--Titanium -注册带有GCM和处理发送到设备的通知的Titanium MODULE 。Android平台使用c2dm进行推送,但是因为c2dm停止...
### TITANIUM智能手机应用开发教程知识点概览 #### 一、TITANIUM系统简介与特点 **TITANIUM系统**是一种基于云的移动应用程序开发平台,它支持跨平台开发,允许开发者使用JavaScript来编写原生移动应用程序。...
在安卓设备的管理和维护中,数据备份与恢复是至关重要的环节。TitaniumBackup_6.0.5.1,这款专业版应用,以其强大的功能和高效的操作,为用户提供了可靠的数据管理工具。它的静默恢复特性,更是为用户带来了前所未有...
在Titanium中,可以使用`Ti.Network`模块来检查设备的网络状态。这个模块提供了多种方法来获取网络连接的信息,例如`Titanium.Network.online`属性,它返回一个布尔值,表示设备当前是否已连接到任何类型的网络(如...
控制器是Alloy框架中的关键组件,它们负责处理用户交互和业务逻辑。这一章节会介绍如何定义和使用控制器,以及如何在控制器之间传递数据。 5. **Alloy Styles and Themes(样式和主题)** 样式和主题使得开发者...
通过合理使用BEGIN/COMMIT事务,开发者可以在Titanium中实现更高效的数据插入,提高应用性能,尤其在处理大量数据时效果显著。同时,结合其他优化策略,如SQL语句优化,可以进一步提升数据库操作的效率。
接下来,我们来看在Titanium中如何使用HttpClient访问REST服务。以下是一个基本的示例: ```javascript var http = Ti.Network.HTTPClient; var url = 'http://example.com/api/resource'; http.onload = function...
在 Titanium Mobile API 中,核心组成部分是 Titanium Module。这些模块包含了大量预定义的对象和方法,旨在简化常见的移动开发任务。例如: - **Ti.UI**:用户界面组件,包括按钮、文本框、列表视图等。 - **Ti....
- **类**:Titanium中的各种类,如UI组件、网络请求类等,它们的构造函数、方法、属性的解释。 - **方法**:每个方法的参数、返回值、使用示例,以及可能抛出的异常。 - **事件**:组件可以触发的事件,以及事件处理...
完成后,可以打包成 `.tibundle` 或 `.aar` 文件,供其他开发者在他们的 Titanium 项目中使用。 **8. 源码分析** `billdawson-ti_coffee_plugin-7dc9a53` 这个文件名可能指的是一个具体的 Titanium 插件项目,由 ...
功能很强大,有此软件,不管你的格机还是重刷ROM,在重装软件时都是无痛的,非实适用经常捣鼓手机有机友! 解锁器使用说明: 1.安装钛备份主程序到手机内存中,且不运行主程序。 2.安装钛备份解锁器工具。 3.打开钛...
在Titanium中,可以使用内置的XML解析器或者第三方库如xml2js来处理XML数据。 通过阅读`TitaniumSOAPWebService`这个压缩包中的文件,你可以找到更具体的示例和实践,进一步了解如何在Titanium项目中实现SOAP客户端...
Titanium Backup_3.7.4捐赠完全版
安卓手机系统备软件 第一次使用钛备份的朋友,可以试着...接着按返回键(手机底部四大金刚中的那个返回键)按钮逐层回退,然后选择sdcard-ext/TitaniumBackup即可(没有 TitaniumBackup文件夹的请自行创建一个):
UIView 是 iOS 平台上视图的基础类,它在 Titanium 中被用来创建和管理用户界面元素。通过这个文档,你可以了解到如何创建、布局和交互各种 UI 元素,如按钮、文本框、图片视图等,以及如何添加事件监听器来响应用户...
[Packt Publishing] Appcelerator Titanium 移动应用开发教程 (英文版) [Packt Publishing] Creating Mobile Apps with Appcelerator Titanium (E-Book) ☆ 图书概要:☆ Develop fully-featured mobile ...
titanium-d1-kickstart.6.1.1.gbin 强大的思科模拟器