ListView Xamarin.Forms(Android)中的图像溢出

问题描述 投票:0回答:1

具有一个ListView,其中对于List的每个元素,您有3个按钮用于3个不同的选项,当您进入屏幕时,ImageButton的图像中没有溢出问题,但是当您第一次滚动时,源就开始滚动到如下图所示溢出

enter image description here

图像会丢失中心并且在您上下滚动时不会对齐,此问题在iOS中不会发生,仅在Android(版本6,7,8和9)中会发生,显然这是一个问题,例如Android渲染图像

我尝试过,将ImageButton控件更改为Button,问题仍然存在,也尝试将“ Aspect”属性分配给ImageButton,但是我没有获得成功的结果,如何解决此问题有帮助吗?然后我的代码XAML

   <ListView 
                ItemsSource="{Binding ListaRecintos}"
                SelectionMode="None"
                IsRefreshing="{Binding IsRefreshing, Mode=TwoWay}"        
                             RowHeight="80"
                             HasUnevenRows="True">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <StackLayout
                                    Margin="0,4,0,0"
                                Orientation="Vertical">

                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="1*"/>
                                            <ColumnDefinition Width="3.9*"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>


                                        <Label
                                            Text="{Binding Code}" 
                                            HorizontalOptions="Start" 
                                            FontSize="Small" 
                                            WidthRequest="40"
                                            HeightRequest="30"
                                            FontAttributes="Bold"
                                            VerticalTextAlignment="Center"
                                            HorizontalTextAlignment="Center"
                                            TextColor="{StaticResource das.color.texto}"
                                            VerticalOptions="CenterAndExpand"
                                            Grid.Column="0">
                                        </Label>

                                        <StackLayout Orientation="Vertical"
                                                      Grid.Column="1">
                                             <Label                                 
                                            Text="{Binding Name}"
                                            HorizontalOptions="Start" 
                                            FontSize="Small" 
                                            HeightRequest="32"
                                            MaxLines="2"
                                            TextColor="{StaticResource das.color.texto}"
                                            VerticalOptions="Center"
                                            VerticalTextAlignment="Center">
                                        </Label>
                                        </StackLayout>
                                    </Grid>

                                    <!--STACK BUTTON-->
                                    <StackLayout
                                              Orientation="Horizontal"
                                              HorizontalOptions="EndAndExpand"
                                              Margin="0,1,1,0">

                                        <!--BUTTON 1-->
                                        <ImageButton 
                                            Source="ic_check_wt"
                                            Aspect="AspectFit"
                                            CornerRadius="0"
                                            BackgroundColor="{StaticResource das.color.estado_success}"                                            
                                            HorizontalOptions="End"
                                            VerticalOptions="Center"
                                            HeightRequest="35"
                                            WidthRequest="50"
                                            CommandParameter="2"
                                            Command="{Binding ControlAuditoriaCommand}"
                                            IsEnabled="{Binding EnabledButton}"/>

                                        <!--BUTTON 2-->
                                        <ImageButton 
                                            Source="ic_hammer"                                         
                                            BackgroundColor="{StaticResource das.color.estado_primary}"                                        
                                            HorizontalOptions="End"
                                            CornerRadius="0"
                                            Aspect="AspectFit"
                                            VerticalOptions="Center"
                                            HeightRequest="35"
                                            WidthRequest="50"
                                            CommandParameter="1"
                                            Command="{Binding ControlAuditoriaCommand}"
                                            IsEnabled="{Binding EnabledButton}"/>

                                        <!--BUTTON 3-->
                                        <ImageButton 
                                            Source="ic_arrow_up"
                                            BackgroundColor="{StaticResource das.color.estado_success}"                                           
                                            HorizontalOptions="End"
                                            CornerRadius="0"
                                            Aspect="AspectFit"
                                            VerticalOptions="Center"
                                            HeightRequest="35"
                                            WidthRequest="50"
                                            CommandParameter="3"
                                            Command="{Binding ControlAuditoriaCommand}"
                                            IsEnabled="{Binding EnabledButton}"/>

                                    </StackLayout>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

如何避免这种行为?对我有帮助吗?

android image xamarin xamarin.forms xamarin.android
1个回答
1
投票

我建议您使用(Frame + image)代替ImageButton,并在其上添加tapgesture。

© www.soinside.com 2019 - 2024. All rights reserved.