2016-04-09 8 views
0

xml'mdeki bottle görünüm/öğesinin işlenen yüksekliğini alan bir yerel komut dosyası uygulaması yazmaya çalışıyorum. Aşağıdaki kodu denedim, ancak maalesef bir hata alıyorum (aşağıda gösteriliyor). Herhangi bir rehberlik çok takdir edilecektir.NativeScript'te öğe yüksekliğine erişme

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> 

tanımsız malı 'yüksekliğini' okunamıyor.

cevap

1

fabTap işleyicisinde, args.object sayfa değil ama FAB kendisini Widget olmasıdır. Aradığınızda Yani getViewById fab widget görünüm hiyerarşisi arar ve hiçbir şişe aşağıdaki şekilde kodunuzu değiştirmeniz gerektiğini :) orada vardır:

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); 
} 
+0

Teşekkür o kadar takas için, o tanımsız çözmüş gibi görünüyor konu. Ama şimdi "Yükseklik: NaN" günlüğüne baskı alıyorum, neden bu olabilir? –

+1

@GeorgeEdwards "height" seçeneği yalnızca özelliği ayarlarsanız ve gerçek olanı döndürmezseniz döner. Bottle.getMeasuredHeight() 'ı yazdırmayı deneyin ve fark yaratıp yaratmadığını görün. –