作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用钛检测方向时,我有一些奇怪的行为。
这是我在 index.js
上使用的代码:
// Start code
Ti.API.info('Orientation: ' + Ti.Gesture.orientation);
Ti.API.info('Portrait: ' + Ti.Gesture.portrait);
Ti.API.info('Landscape: ' + Ti.Gesture.landscape);
Ti.API.info(Ti.Platform.displayCaps.platformWidth + ' x ' + Ti.Platform.displayCaps.platformHeight);
// Code when orientation changes
Ti.Gesture.addEventListener('orientationchange',function(e) {
Ti.API.info('orientation changed!');
Ti.API.info('Orientation: ' + e.orientation);
Ti.API.info('Portrait: ' + e.source.isPortrait());
Ti.API.info('Landscape: ' + e.source.isLandscape());
Ti.API.info(Ti.Platform.displayCaps.platformWidth + ' x ' + Ti.Platform.displayCaps.platformHeight);
});
0 度
(正常纵向位置)开始应用程序。程序启动时我得到以下输出:
Orientation: 1 (Same as Ti.UI.PORTRAIT)
Portrait: true
Landscape: false
1440 x 2392
将手机旋转到90 度
位置时,甚至不会触发该事件! 为什么不呢?
再次顺时针旋转到 180 度
位置会触发事件并在控制台上给出以下正确值:
orientation changed!
Orientation: 4 (Same as Ti.UI.LANDSCAPE_RIGHT)
Portrait: false
Landscape: true
2392 x 1440
(请注意,尽管手机在技术上是纵向的,但由于手机的方向是错误的,因此应用程序会以横向显示。这是 Android 的预期行为)
再次顺时针旋转到 270 度
位置会触发事件并给出以下正确值:
orientation changed!
Orientation: 4 (Same as Ti.UI.LANDSCAPE_RIGHT. Should be Ti.UI.LANDSCAPE_LEFT?)
Portrait: false
Landscape: true
2392 x 1440
但是,当再次顺时针旋转时(回到 0 度
),我得到了不正确的值:
orientation changed!
Orientation: 2 (Same as Ti.UI.UPSIDE_PORTRAIT)
Portrait: false
Landscape: true
2392 x 1440
注意如何:
e.orientation
似乎给出了 Ti.UI.UPSIDE_PORTRAIT
的半正确结果,而它应该是 Ti.UI.PORTRAIT
.没什么大不了的。最佳答案
在 orientationchange
监听器中,如果您检查 e.orientation
并将其与正常方向常量(Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT、Ti.UI.LANDSCAPE_LEFT、Ti.UI.LANDSCAPE_RIGHT
)。
这是因为还有其他方向(FACE_DOWN、FACE_UP
),有一次我疯狂地试图理解为什么我的一些客户有时会注意到一些“闪烁”(从 FACE_DOWN
到 FACE_UP
)。
此外:使用真实设备测试您的监听器,因为在模拟器中测试orientationchange
事件几乎完全没有用。
关于android - 钛/Appcelerator 合金无法正确检测方向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42927033/
我是一名优秀的程序员,十分优秀!