我试图显示一些项目,为此,现在,我使用的是水平堆叠布局。
它们应该水平显示,但不是这样:
如果第三个项目没有完全显示,并且以下项目根本没有显示,则应将它们换到下一行。如下所示(或类似):
使用HorizontalStackLayout是否可以实现这一点,或者是否有任何其他视图可以创建这样的效果?
Stacklayout的xaml现在看起来像这样:
<HorizontalStackLayout Grid.Column="1" BindableLayout.ItemsSource="{Binding DisplayedUserActions}" Margin="10">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Border BackgroundColor="White" HeightRequest="150" MinimumWidthRequest="180" Margin="5">
<Border.StrokeShape>
<RoundRectangle CornerRadius="20,20,20,20"/>
</Border.StrokeShape>
<Grid RowDefinitions="*,*">
<Border Grid.Row="0" StrokeThickness="2" Stroke="lightgray" BackgroundColor="AliceBlue" Margin="2">
<Border.StrokeShape>
<RoundRectangle CornerRadius="20,20,20,20"/>
</Border.StrokeShape>
</Border>
<Label Grid.Row="1" VerticalOptions="Center" HorizontalOptions="Center" Text="{Binding Title}" TextColor="Black"></Label>
</Grid>
</Border>
</DataTemplate>
</BindableLayout.ItemTemplate>
</HorizontalStackLayout>
1条答案
按热度按时间70gysomp1#
StackLayout就是这样做的,它可以堆叠。无论是水平还是垂直,它都可以一个接一个地堆叠项目。如果是水平的,它永远不会增加一行,如果是垂直的,它永远不会增加另一列。
然而,FLexLayout确实有一个Wrap属性,与FlexDirection结合使用,您应该能够以任何方式 Package 它。
根据您希望如何显示项目,在所有可用的different layouts中,您应该能够找到一个适合您需要的。