【发布时间】:2020-08-04 16:46:58
【问题描述】:
我有一个包含两个 FlexLayout 的水平 StackLayout。 StackLayout 在屏幕的右上角对齐。现在我希望左边的 FlexLayout(这里称为 LeftStack,见下面的代码)能够水平增长,并且一旦单行的项目太多;换行。我尝试了两件事
-
将 Wrap 属性设置为 Wrap,但左侧的 FlexLayout 然后立即包装每个项目,而不是水平扩展 FlexLayout,我得到一列项目:(
-
将方向设置为 RowReverse 会导致左侧 FlexLayout 的所有项目消失。嗯,这是出乎意料的:(
如果单行的项目太多,如何让左侧 FlexLayout 换行?第一个包装的项目应该显示在深绿色的 BoxView 下方。屏幕截图显示了我想要实现的目标(而不是发布代码的结果)。任何想法如何使左侧 FlexLayout 换行?
<Grid VerticalOptions="Start">
<StackLayout
HorizontalOptions="End"
Margin="0,50,0,0"
Orientation="Horizontal"
BackgroundColor="White">
<FlexLayout x:Name="LeftStack"
Direction="Row"
Wrap="Wrap">
<BoxView BackgroundColor="DarkRed" WidthRequest="100" HeightRequest="60" FlexLayout.Grow="1"/>
<BoxView BackgroundColor="DarkGray" WidthRequest="100" HeightRequest="60" FlexLayout.Grow="1"/>
</FlexLayout>
<FlexLayout x:Name="RightStack"
Direction="Row">
<BoxView BackgroundColor="LightCoral" WidthRequest="60" HeightRequest="60" FlexLayout.Grow="1"/>
<BoxView BackgroundColor="LightGreen" WidthRequest="60" HeightRequest="60" FlexLayout.Grow="1"/>
</FlexLayout>
</StackLayout>
</Grid>
【问题讨论】:
-
你好,很抱歉没有太了解你想要什么,你能分享另一张图片来解释需要的效果吗?
-
@JuniorJiang-MSFT 我改变了我的问题,以便更清楚我想要实现的目标
标签: xamarin.forms