NativeScript中的叠加定位

时间:2016-04-28 15:00:36

标签: nativescript

我正在使用nativescript插件获取各种各样的素材下拉列表。该插件将一个AbsoluteLayout添加到Page作为背景,然后将ListView添加到该AbsoluteLayout,以便选择器显示在顶部。它还添加了带有标签的GridView,并将其置于由其XML定义的位置。以下是视图的XML中使用的插件示例:

<GridLayout rows="auto" columns="*, auto">
    <StackLayout>
        <label text="Color" />
        <label style="height: 3; background-color: gray;" />
    </StackLayout>

    <MDL:MaterialDropdownList col="1" id="ddlColors"
        items="{{ colors }}" selectedIndex="{{ selectedColorIndex }}" >
    </MDL:MaterialDropdownList>
</GridLayout>

我想要做的是点击时在MaterialDropdownList元素上直接显示ListView。但是,我尝试过originX和originY,一直到每个父元素,直到我点击Page,然后我回到了超低数量的&#34; 2&#34;。这是一个片段:

let src: viewModule.View = <viewModule.View>arg.object,
        x: number, y: number;
x = src.originX;
y = src.originY;
let parent = src.parent;
while (parent !== this.page) {
    x += parent.originX;
    y += parent.originY;
    parent = parent.parent;
}

console.log(`x and y are ${x} and ${y}`); //2, 2

this._listPicker.originX = x;
this._listPicker.originY = y;

非常感谢任何想法!

1 个答案:

答案 0 :(得分:4)

我相信你要找的功能是element.getLocationOnScreen() 或element.getLocationInWindow()获取元素的实际位置。