在 NativeScript 中访问元素高度
Accessing element height in NativeScript
我正在尝试编写一个本机脚本应用程序来检索 bottle
view/element 在我的 xml 中的渲染高度。我试过下面的代码,但不幸的是,我得到了一个错误(如下所示)。任何指导将不胜感激。
JS:
var viewModule = require("ui/core/view");
var page;
exports.fabTap = function (args) {
page = args.object;
var bottle = page.getViewById("bottle");
console.log("Height: " + bottle.height);
}
XML:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:FAB="nativescript-floatingactionbutton" actionBarHidden="true" loaded="pageLoaded">
<GridLayout columns="*, *, *, *" rows="15*, 5*, 20*, 5*, 5*, 5*, 5*, 20*, 20*" width="100%" height="100%" style.backgroundColor="white" >
<Image src="res://logo" row="0" col="1" colSpan="2" stretch ="aspectFit" class="logo"/>
<Image id="bottle" src="res://bottle_outline" row="2" col="0" rowSpan="6" colSpan="2" stretch="aspectFit"/>
</GridLayout>
</Page>
Cannot read property 'height' of undefined.
这是因为在 fabTap
处理程序中,args.object
不是页面而是 FAB 小部件本身。因此,当您调用 getViewById
时,它会搜索 FAB 小部件的视图层次结构,并且那里没有瓶子 :) 您应该按如下方式更改代码:
var viewModule = require("ui/core/view");
var page;
exports.pageLoaded = function (args) {
page = args.object;
}
exports.fabTap = function (args) {
var bottle = page.getViewById("bottle");
console.log("Height: " + bottle.height);
}
获取视图的计算大小,而不是您在样式中声明的大小:
const viewModule = require("ui/core/view");
let page;
exports.pageLoaded = function (args) {
page = args.object;
}
exports.fabTap = function (args) {
const bottle = page.getViewById("bottle");
console.log("Height: " + bottle.getActualSize().height);
}
我正在尝试编写一个本机脚本应用程序来检索 bottle
view/element 在我的 xml 中的渲染高度。我试过下面的代码,但不幸的是,我得到了一个错误(如下所示)。任何指导将不胜感激。
JS:
var viewModule = require("ui/core/view");
var page;
exports.fabTap = function (args) {
page = args.object;
var bottle = page.getViewById("bottle");
console.log("Height: " + bottle.height);
}
XML:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:FAB="nativescript-floatingactionbutton" actionBarHidden="true" loaded="pageLoaded">
<GridLayout columns="*, *, *, *" rows="15*, 5*, 20*, 5*, 5*, 5*, 5*, 20*, 20*" width="100%" height="100%" style.backgroundColor="white" >
<Image src="res://logo" row="0" col="1" colSpan="2" stretch ="aspectFit" class="logo"/>
<Image id="bottle" src="res://bottle_outline" row="2" col="0" rowSpan="6" colSpan="2" stretch="aspectFit"/>
</GridLayout>
</Page>
Cannot read property 'height' of undefined.
这是因为在 fabTap
处理程序中,args.object
不是页面而是 FAB 小部件本身。因此,当您调用 getViewById
时,它会搜索 FAB 小部件的视图层次结构,并且那里没有瓶子 :) 您应该按如下方式更改代码:
var viewModule = require("ui/core/view");
var page;
exports.pageLoaded = function (args) {
page = args.object;
}
exports.fabTap = function (args) {
var bottle = page.getViewById("bottle");
console.log("Height: " + bottle.height);
}
获取视图的计算大小,而不是您在样式中声明的大小:
const viewModule = require("ui/core/view");
let page;
exports.pageLoaded = function (args) {
page = args.object;
}
exports.fabTap = function (args) {
const bottle = page.getViewById("bottle");
console.log("Height: " + bottle.getActualSize().height);
}