javascript – 有人知道如何检测Nativescript的方向更改吗?
作者:互联网
我为屏幕创建了两个xml文件.一个名为“login-page.port.xml”,另一个名为“login-page.land.xaml”.
有没有办法以编程方式检测应用程序中的方向变化?
谢谢,
Keks
解决方法:
是的,有一种方法可以检测应用程序中的方向变化.最简单的方法是在您想要获得方向的页面中;将已加载和已卸载的事件添加到page.xml文件中:
<Page loaded="pageLoaded" unloaded="pageUnloaded">
在你的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);
}
几个笔记;
你要添加&在进入和退出页面时删除事件监听器;否则,监听器是全局的,即使您在另一个页面上,当方向发生变化时也会继续触发.
2.您可以为此事件添加多个侦听器,因此,如果您不删除侦听器,则每次重新加载此页面时,您将向该组添加此侦听器的另一个副本,因此它将触发多次因为你已经添加了它.
3.在v1.6.1中的android上,它们是方向触发中的错误. https://github.com/NativeScript/NativeScript/issues/1656(基本上如果你从横向开始,旋转它将无法检测到它.问题有我已经手动应用到我的代码的补丁).
现在看看你的实际例子;你是否意识到至少从1.6x版本的NativeScript开始,它只会加载当前设置为哪个方向的XML;但是在旋转时它不会加载另一个方向的xml.所以,如果你在景观;进入屏幕然后旋转它仍将使用Landscape xml文件.
现在所有这些说你可能会认真考虑查看我作为作者的nativescript-orientation插件,这个插件简化了处理屏幕方向,并允许你只有一个.xml文件,然后通过css更改东西.
标签:nativescript,android,javascript,xml 来源: https://codeday.me/bug/20190829/1759666.html