我正在使用AbsoluteLayout来渲染我的视图,基本上我有一个地图填充视图和一个与AbsoluteLayout底部对齐的按钮
AbsoluteLayout (fill)
|--View (fill)
|--Button (bottom, full-width, 200 height)
以下是我使用proportional values定义布局的代码:
<AbsoluteLayout
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand">
<maps:Map
AbsoluteLayout.LayoutBounds="0,0,1,1"
AbsoluteLayout.LayoutFlags="All" />
<Button
AbsoluteLayout.LayoutBounds="0.5,1,0.5,0.15"
AbsoluteLayout.LayoutFlags="All" />
// ... other controls ... //
</AbsoluteLayout>
除了我的按钮具有动态高度(与父高度成比例)之外,它的工作原理非常好。我希望保持静态,只要我有其他样式,只要高度是动态的(例如BorderRadius
),它就会变得难看。
我尝试使用absolute values作为按钮,但现在我被限制为以绝对值定义高度和宽度,而我只希望以绝对值定义高度,并且宽度继续采用整个父级宽度跨度。
答案 0 :(得分:1)
在AbsoluteLayout中,我们可以通过设置AbsoluteLayout的LayoutFlagsAs来确定哪四个属性成比例或绝对(静态)。因此,正如@DavidS所提到的,你可以将Button的高度设置为静态(例如50):
<AbsoluteLayout
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand">
<maps:Map
AbsoluteLayout.LayoutBounds="0,0,1,1"
AbsoluteLayout.LayoutFlags="All" />
<Button
AbsoluteLayout.LayoutBounds="0.5,1,0.5,50"
AbsoluteLayout.LayoutFlags="PositionProportional,WidthProportional" />
// ... other controls ... //
</AbsoluteLayout>