首页 文章

Xamarin.Forms AbsoluteLayout孩子具有绝对高度和比例宽度

提问于
浏览
0

我正在使用AbsoluteLayout渲染我的视图,基本上我有一个 Map 填充视图和一个与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作为按钮,但现在我被限制为高度和宽度都以绝对值定义,而我只想要以绝对值定义高度,并且宽度继续采用整个父宽度 Span .

1 回答

  • 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,WidthPropor‌​tional" />
                 // ... other controls ... //
    </AbsoluteLayout>
    

相关问题