首页 > 解决方案 > 如何根据子项高度自动设置 FlexLayout 高度

问题描述

我正在尝试创建一个 FlexLayout 而不指定它的高度,因为我假设它会从它的子高度获取它。当我这样做时,FlexLayout 根本不显示。这是一个简单的代码:

<FlexLayout Direction="Column">
    <Button Text="Test Button" />
    <!-- Here I'm trying to create FlexLayout without specifying its height -->
    <FlexLayout JustifyContent="Start" AlignItems="Start" AlignContent="Start" BackgroundColor="Blue" Direction="RowReverse" Wrap="Wrap">
        <Label Text="Test Label" HeightRequest="50" WidthRequest="50"  BackgroundColor="Yellow" />
    </FlexLayout>
</FlexLayout>

我尝试了所有方法,但没有任何效果,除非我为(内部)FlexLayout 指定 HeightRequest 或 FlexLayout.Basis。任何建议将不胜感激。

标签: xamarinxamarin.forms

解决方案


如果我将第一个FlexLayout更改StackLayout为如下,它将起作用。这太奇怪了,因为我认为它应该可以在不将其更改为的情况下工作StackLayout

<StackLayout Orientation="Vertical" Spacing="0">
    <Button Text="Test Button" />
    <FlexLayout JustifyContent="Start" AlignItems="Start" AlignContent="Start" BackgroundColor="Blue" Direction="RowReverse" Wrap="Wrap">
        <Label Text="Test Label" HeightRequest="50" WidthRequest="50"  BackgroundColor="Yellow" />
    </FlexLayout>
</StackLayout>

推荐阅读