簡體   English   中英

Xamarin.Forms:計算listview的高度錯誤嗎?

[英]Xamarin.Forms: calculating listview height wrong?

為什么只有一半的文本顯示在底部的標簽中?

這是我的xaml listview區域為300,每個listview行為100(在<On Platform="Android">100</On> )。

每個ViewCell有4行,每行25條,共100行(列表視圖行高)。

因此,我不明白為什么僅在底部顯示一半的文本,或者為什么第二列的第0行和第1行占用的空間不完全是總高度的一半。

<Grid RowSpacing="0">
    <Grid.RowDefinitions>
        <RowDefinition Height="100" />
        <RowDefinition Height="300" />
    </Grid.RowDefinitions>
    <StackLayout Grid.Row="0" x:Name="MapGrid">
        <maps:Map WidthRequest="960" HeightRequest="100" 
              x:Name="MyMap" IsShowingUser="true"/>
    </StackLayout>
    <StackLayout Grid.Row="1" x:Name="listSection" HeightRequest="300">
        <ListView x:Name="ListView_Pets">
            <ListView.RowHeight>
                <OnPlatform x:TypeArguments="x:Int32">
                    <On Platform="Android">100</On>
                </OnPlatform>
            </ListView.RowHeight>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"></RowDefinition>
                                <RowDefinition Height="25"></RowDefinition>
                                <RowDefinition Height="25"></RowDefinition>
                                <RowDefinition Height="25"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="50*" />
                                <ColumnDefinition Width="25*"/>
                                <ColumnDefinition Width="25*"/>
                            </Grid.ColumnDefinitions>
                            <Label Text="Name" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" FontSize="15" TextColor="Black" Grid.Row="0" Grid.Column="0"/>
                            <Label Text="Address" HorizontalTextAlignment="Center" VerticalTextAlignment="Start" FontSize="10" TextColor="Black" Grid.Row="1" Grid.Column="0"/>
                            <Label Text="Price1" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" FontSize="15" TextColor="White" BackgroundColor="#2FA4D9" Grid.Row="0" Grid.Column="2"/>
                            <Label Text="Price2" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" FontSize="15" TextColor="White" BackgroundColor="#2FA4D9" Grid.Row="1" Grid.Column="2"/>
                            <Label Text="Tag1" Grid.Row="0" VerticalTextAlignment="Center" HorizontalTextAlignment="End" Grid.Column="1" FontSize="Micro"/>
                            <Label Text="Tag2" Grid.Row="1" VerticalTextAlignment="Center" HorizontalTextAlignment="End" Grid.Column="1" FontSize="Micro"/>
                            <StackLayout Grid.Row="3" Grid.Column="0">
                                <StackLayout Orientation="Horizontal" >
                                    <Label Text="Text1" FontSize="10" VerticalTextAlignment="Start" TextColor="Black" />
                                    <Label Text="Text2" VerticalTextAlignment="Start" FontSize="10" TextColor="Black" />
                                    <Label Text="Text3" VerticalTextAlignment="Start" FontSize="10" TextColor="Black" />
                                </StackLayout>
                            </StackLayout>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</Grid>

這是屏幕截圖:

在此處輸入圖片說明

這是因為ViewCell內部的網格具有默認的RowSpacing和ColumnSpacing。 要覆蓋它,只需設置<Grid RowSpacing=0 ColumnSpacing=0>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM