use*_*910 5 javascript xml android nativescript
我为屏幕创建了两个xml文件.一个名为"login-page.port.xml",另一个名为"login-page.land.xaml".
有没有办法以编程方式检测应用程序中的方向变化?
谢谢,凯克斯
是的,有一种方法可以检测应用程序中的方向变化.最简单的方法是在您想要获得方向的页面中; 将已加载和已卸载的事件添加到page.xml文件中:
<Page loaded="pageLoaded" unloaded="pageUnloaded">
Run Code Online (Sandbox Code Playgroud)
在你的page.js文件中; 添加这样的代码:
var application=require('application');
exports.pageLoaded = function() {
application.on(application.orientationChangedEvent, setOrientation);
};
exports.pageUnloaded = function() {
application.off(application.orientationChangedEvent, setOrientation);
}
function setOrientation(args) {
// Will console out the new Orientation
console.log(args.newValue);
}
Run Code Online (Sandbox Code Playgroud)
几个笔记; 1.您想在进入和退出页面时添加和删除事件监听器; 否则,监听器是全局的,即使您在另一个页面上,当方向发生变化时也会继续触发.2.您可以为此事件添加多个侦听器,因此,如果您不删除侦听器,则每次重新加载此页面时,您将向该组添加此侦听器的另一个副本,因此它将触发多次因为你已经添加了它.3.在v1.6.1中的android上,它们是方向触发中的错误. https://github.com/NativeScript/NativeScript/issues/1656 (基本上,如果你从横向开始,旋转它将无法检测到它.问题是我已经手动应用到我的代码的补丁).
现在看看你的实际例子; 你是否意识到至少从1.6x版本的NativeScript开始,它只会加载当前设置为哪个方向的XML; 但是在旋转时它不会加载另一个方向的xml.所以,如果你在景观; 进入屏幕然后旋转它仍将使用Landscape xml文件.
现在,尽管如此,你可能会认真考虑查看我作为作者的nativescript-orientation插件,这个插件简化了处理屏幕方向,并允许你只有一个.xml文件然后通过css更改东西.
归档时间: |
|
查看次数: |
3355 次 |
最近记录: |