Xaml 将FlexLayout替换为StackLayout

Xaml 将FlexLayout替换为StackLayout,xaml,xamarin.forms,Xaml,Xamarin.forms,我有一个网格,在集合视图中有两行处于自动状态。其中一个是FlexLayout,另一个是标签。对于一些奇怪的问题,使用这两个控件,标签不会显示,到目前为止,我找到的唯一方法是将FlexLayout替换为StackLayout <DataTemplate> <yummy:PancakeView CornerRadius="15"> <yum

我有一个
网格
,在
集合视图
中有两行处于自动状态。其中一个是
FlexLayout
,另一个是
标签
。对于一些奇怪的问题,使用这两个控件,
标签
不会显示,到目前为止,我找到的唯一方法是将
FlexLayout
替换为
StackLayout

 <DataTemplate>
                         <yummy:PancakeView  CornerRadius="15">
                             <yummy:PancakeView.Shadow>
                                 <yummy:DropShadow Color="LightBlue" Offset="10,10"/>
                             </yummy:PancakeView.Shadow>
                             <Grid BackgroundColor="{DynamicResource SfondoElemDiario}" RowSpacing="0.2">
                                     <Grid.RowDefinitions>
                                         <RowDefinition Height="27"/>
                                         <RowDefinition Height="27"/>
                                         <RowDefinition Height="Auto"/>
                                         <RowDefinition Height="Auto"/>
                                     </Grid.RowDefinitions>
                                     <Grid.ColumnDefinitions>
                                         <ColumnDefinition Width="65"/>
                                         <ColumnDefinition Width="*"/>
                                     <ColumnDefinition Width="32"/>
                                 </Grid.ColumnDefinitions>
                                        
                                     <Image Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Margin="4,4,4,7" Source="{Binding Umore}" VerticalOptions="Center"/>
                                     <Label Grid.Row="0" FontFamily="FontM" Grid.Column="1" Text="{Binding GiornoTrascritto}" FontSize="16" TextColor="{DynamicResource TextColor}" Opacity="0.6" VerticalOptions="Center" />
                                     <Label Grid.Row="1" FontFamily="FontM" Grid.Column="1" Text="{Binding Orario}" FontSize="16" TextColor="{DynamicResource TextColor}" Opacity="0.6" VerticalOptions="Center"/>
                                     <ProgressBar Grid.Row="1" Grid.Column="0" ProgressColor="LightGray" HeightRequest="10" Progress="1" VerticalOptions="End"/>
                                     <ProgressBar Grid.Row="1" Grid.Column="0" ProgressColor="{Binding ColoreUmore}" HeightRequest="10" Progress="{Binding ProgValore}"  VerticalOptions="End"/>
                                     <FlexLayout
                                         Grid.Row="2"
                                         Margin="0,5,10,0"
                                         Grid.Column="1"     
                                         BindableLayout.ItemsSource="{Binding IconDiaries}" 
                                         Wrap="Wrap" 
                                         JustifyContent="Start" 
                                         Direction="Row" 
                                         AlignItems="Start" 
                                         AlignContent="Start">
                                         <BindableLayout.ItemTemplate>
                                             <DataTemplate>
                                                 <Grid Padding="0,2,3,0">
                                                     <Grid.RowDefinitions>
                                                         <RowDefinition Height="18"/>
                                                     </Grid.RowDefinitions>
                                                     <Grid.ColumnDefinitions>
                                                         <ColumnDefinition Width="18"/>
                                                         <ColumnDefinition Width="Auto"/>
                                                     </Grid.ColumnDefinitions>
                                                     <controls:TintedImage Grid.Row="0" Grid.Column="0" Source="{Binding isSource}" Margin="2" TintColor="{Binding ColoreUmore}"/>
                                                     <Label Grid.Row="0" Grid.Column="1" FontFamily="FontM" Text="{Binding id}" TextColor="{DynamicResource TextColor}" Opacity="0.9" FontSize="13" VerticalTextAlignment="Center" Margin="0,0,3,0"/>
                                                 </Grid>
                                             </DataTemplate>
                                         </BindableLayout.ItemTemplate>
                                     </FlexLayout>
                                     <Label Grid.Row="3" Grid.Column="1" FontFamily="FontM" TextColor="{DynamicResource TextColor}"  FontSize="16" Text="{Binding Nota}"/>


有没有办法将此
FlexLayout
转换为
StackLayout
,并能够以同样的方式进行可视化?

对FlexLayout行使用
*
而不是
自动

    <Grid BackgroundColor="{DynamicResource SfondoElemDiario}" RowSpacing="0.2">
        <Grid.RowDefinitions>
            <RowDefinition Height="27" />
            <RowDefinition Height="27" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <!-- elements -->
    </Grid>


否,不能使StackLayout的行为类似于FlexLayout。在我看来,您的标签正在显示,除非它需要包装。我假设这是计算网格单元大小时出现的问题。您是否记录了问题并提交了测试用例?我输入了完整的代码。最后一个标签不显示。如果你试着做一个测试,你会看到它的。我不知道你的意思。你是说FlexLayout之后的标签吗?还是FlexLayout中的标签?您的屏幕截图似乎显示了6个图标和6条文本,因此我假设这意味着您的FlexLayout中有6个元素,并且每个元素都显示了DataTemplate。我指的是最终标签,FlexLayout之后的标签。如果我将行设置为AutoIt works,则不会显示该行!!为什么插入*而不是自动解决了这个问题?这是来自XF repo,FlexLayout的包装内容计算不正确。这里的解决方法很好,因为只有一行需要“*”,这就是FlexLayout。