如何使用Xamarin.Forms覆盖元素

时间:2015-07-30 12:33:52

标签: xamarin.forms

我只是想在顶部创建一个自动完成元素,其中建议列表不会在我的布局中向下移动其余元素。

我可以尝试将EntryListView包装在AbsoluteLayout容器中,但对我来说这听起来不像是一个干净的解决方案。有没有不同的方法来实现这一目标?

3 个答案:

答案 0 :(得分:3)

如果您使用网格,您可以覆盖内容并设置是否应该向左,向右,居中等。最后一个要添加的内容将在顶部,在您的情况下输入。

答案 1 :(得分:3)

为了覆盖元素,您可以使用"绝对"和/或"亲戚"布局。

使用" Grid"进行覆盖的解决方法。为了做到这一点,你需要把你的元素或"容器"在同一行/单元格中。

以下是示例:

<Grid>
    <Label Grid.Row="0" Text="test" VerticalTextAlignment="Center" />
    <Label Grid.Row="0" Text="overlay" VerticalTextAlignment="Center" />
</Grid>

答案 2 :(得分:1)

一直使用Grid,直到它开始随机崩溃以显示复杂的布局。

无论如何,解决方案是使用AbsoluteLayout。 https://docs.microsoft.com/ru-ru/xamarin/xamarin-forms/user-interface/layouts/absolute-layout

2个居中的重叠项目示例:

    <AbsoluteLayout 
                 VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">

     <BoxView
                       AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" 
                AbsoluteLayout.LayoutFlags="PositionProportional"          
              BackgroundColor="Red"
              HeightRequest="100"
              WidthRequest="100"/>

     <ActivityIndicator
                       AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" 
                AbsoluteLayout.LayoutFlags="PositionProportional"          
              IsRunning="True"
              VerticalOptions="CenterAndExpand"
              HorizontalOptions="CenterAndExpand"/>
</AbsoluteLayout>

XAML提示:

FillAndExpand XY:

AbsoluteLayout.LayoutBounds="0, 0, 1, 1" 
AbsoluteLayout.LayoutFlags="All"

中心XY:

AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1"     
AbsoluteLayout.LayoutFlags="PositionProportional"

垂直中心,水平填充:

AbsoluteLayout.LayoutBounds="0.5, 0.5, 1, -1" 
AbsoluteLayout.LayoutFlags="PositionProportional"

垂直端,水平中心

AbsoluteLayout.LayoutBounds="0.5, 1, -1, -1" 
AbsoluteLayout.LayoutFlags="PositionProportional"

垂直开始,水平居中

AbsoluteLayout.LayoutBounds="0.5, 0, -1, -1" 
AbsoluteLayout.LayoutFlags="PositionProportional"

垂直开始,水平开始

AbsoluteLayout.LayoutBounds="0, 0, -1, -1" 
AbsoluteLayout.LayoutFlags="PositionProportional"