首页 > 解决方案 > listview 中的 ImageButton 错误(添加项目时变小)

问题描述

我使用项目模板制作了列表视图,当我单击 AddButton 并将项目添加到此列表时,此模板中的图像按钮变小了。

它应该看起来像 https://drive.google.com/open?id=1e8BTXzPDhcbhsRO7Jqo7UB08VRfspcaO

它看起来像 https://drive.google.com/open?id=1fHpveogjKiYLYbZE0WsXhRv9_ah50XMP

我的列表视图:

<ListView x:Name="ThisList" HeightRequest="100" RowHeight="45">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="40"/>
                    </Grid.ColumnDefinitions>
                    <TimePicker  Grid.Column="0" HorizontalOptions="Center" FontFamily="{StaticResource MTBfont}" Time="{Binding time}"/>
                    <ImageButton Source="{Binding img}" Grid.Column="1" HorizontalOptions="Center" BackgroundColor="Transparent" Clicked="ProfileD_Clicked"/>
                    <ImageButton IsVisible="{Binding visible}" Source="deleteicon.png" Grid.Column="2" MinimumWidthRequest="30" WidthRequest="30" HorizontalOptions="Center"  BackgroundColor="Transparent" Clicked="DeleteD_Clicked"/>``
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
    <ListView.Footer>
        <ImageButton Clicked="AddDButton_Clicked" Source="button_add.png" WidthRequest="50" VerticalOptions="Center" HorizontalOptions="Center" BackgroundColor="Transparent"/>
    </ListView.Footer>
</ListView>

我的添加按钮代码:

private void AddDButton_Clicked(object sender, EventArgs e)
{
     ItemD.Add(new SchamatListItem(){
        img = "eco.png",
        time = ItemD[ItemD.Count() - 1].time + TimeSpan.FromHours(1),
        visible = true,
        index = counterD
     });
     counterD++;
     ThisList.HeightRequest = ThisList.HeightRequest + 45;
}

我的解决方案我认为这不是最好的,但它确实有效。

<Image IsVisible="{Binding visible}" Source="deleteicon.png" Grid.Column="2" MinimumWidthRequest="30" WidthRequest="30" HorizontalOptions="Center"  BackgroundColor="Transparent">
                                                    <Image.GestureRecognizers>
                                                        <TapGestureRecognizer Tapped="DeleteD_Clicked" NumberOfTapsRequired="1"/>
                                                    </Image.GestureRecognizers>
                                                </Image>

标签: c#xamlxamarinxamarin.forms

解决方案


尝试从图像按钮中删除背景颜色属性。它是一个现有的错误 - https://github.com/xamarin/Xamarin.Forms/issues/4510


推荐阅读