我只是想在顶部创建一个自动完成元素,其中建议列表不会在我的布局中向下移动其余元素。
我可以尝试将Entry
和ListView
包装在AbsoluteLayout
容器中,但对我来说这听起来不像是一个干净的解决方案。有没有不同的方法来实现这一目标?
答案 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"