我想在NativeScript中以绝对布局在屏幕底部放置一个元素。如何在NativeScript的绝对布局底部定位元素?
我有这样的代码:
<AbsoluteLayout>
<maps:mapView
left="0"
top="0"
width="100%"
height="100%"
latitude="{{ map.latitude }}"
longitude="{{ map.longitude }}"
zoom="{{ map.zoom }}"
padding="{{ map.padding }}"
mapReady="onMapReady"
coordinateTapped="onCoordinateTapped"
markerSelect="onMarkerSelect"
shapeSelect="onShapeSelect"
cameraChanged="onMapCameraChanged"/>
<ScrollView
left="0"
top="0"
width="100%"
orientation="horizontal">
<!-- More XML -->
</ScrollView>
<StackLayout
left="0"
bottom="0"
width="100%"
visibility="visible"
orientation="horizontal"
style="background-color: red;">
<Label text="TITLE"></Label>
</StackLayout>
</AbsoluteLayout>
我想通了,没有用于AbsoluteLayout没有底属性...这里是什么,我想创建的图片:
那么如何像图片中的项目一样,特别是底部的项目?
编辑:我要指出,这个底部矩形的尺寸可能不总是相同....
你也许知道我怎么能计算底部栏的高度,因为它里面的内容会改变加班时间,并且它会被显示/隐藏。所以我需要在显示它之前计算它的新高度......或者即使它被隐藏了,在内容改变之后它会更新它的高度,我不计算它吗? – clzola
您可以使用'getMeasuredHeight()'函数将其转换为DIP,然后每次更改其内容时更改其位置。您也可以采用完全不同的方式:使用GridLayout显示可以使用'visibility'属性隐藏/显示的底部条。这样你的底部栏总是在底部,他的身高不变,主要内容将始终填满所有可用空间。我将在我的回答中添加此选项 – micster
我已经选择了第一个解决方案。所以,布局最初是隐藏的,标签是空的。在将来的某个时候,一个事件触发器应该用适当的文本显示这个隐藏的布局。所以我写'bottomBarLabel.text ='一些文字';让h = bottomBar.getMeasuredHeight();'。但bottomBar的高度为零,至少getMeasuredHeight()返回零。然而,我设置了一个超时运行,并在该超时打印出getMeasuredHeight(),它得到它的权利,但我不喜欢使用超时功能等待组件来计算其高度.... – clzola