如何在Xamarin.Forms中叠加元素

8

我只想在页面顶部创建一个自动完成元素,建议列表不会影响到我的布局中其余的元素。

我可以尝试将EntryListView包装在AbsoluteLayout容器中,但对我来说这似乎不是一个清洁的解决方案。是否有其他方法可以实现这一点?

3个回答

11

一直使用Grid,但是遇到复杂布局时会随机崩溃。

无论如何解决方案是使用AbsoluteLayout。 https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/absolutelayout

两个居中重叠项的示例:

    <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技巧:

填充并扩展 XY:

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

中心点坐标:

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"

8
如果您使用网格,可以叠加内容并设置它应该向左、向右、居中等。最后添加的内容将位于顶部,在您的情况下是条目(Entry)。

6
为了叠加元素,您可以使用“绝对布局”和/或“相对布局”。
使用“网格布局”进行叠加有一个解决方法。为此,您需要将元素或“容器”放在同一行/单元格中。
以下是示例:
<Grid>
    <Label Grid.Row="0" Text="test" VerticalTextAlignment="Center" />
    <Label Grid.Row="0" Text="overlay" VerticalTextAlignment="Center" />
</Grid>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接