【问题标题】:Xamarin Listview cannot scroll to bottmXamarin Listview 无法滚动到底部
【发布时间】:2021-01-21 11:20:14
【问题描述】:

我修改样例https://docs.microsoft.com/zh-tw/samples/xamarin/xamarin-forms-samples/userinterface-xaminals/

将 collectionview 替换为 listview 。替换后发现listview不能滚动到底部(一共17项,但只显示6项)

此错误仅在 Android 上发生,但在 IOS 上运行良好。

如何解决这个问题?

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
             xmlns:controls="clr-namespace:Xaminals.Controls"
             xmlns:data="clr-namespace:Xaminals.Data"
             x:Class="Xaminals.Views.MonkeysPage"
             Title="Monkeys">
     <RelativeLayout
                VerticalOptions="FillAndExpand"
                HorizontalOptions="FillAndExpand">

   
        <StackLayout Orientation="Vertical"
                               VerticalOptions="FillAndExpand"
                               Padding="10">


            <ListView     ItemsSource="{x:Static data:MonkeyData.Monkeys}"
                            x:Name="CollectionView1"  
                           
                            RowHeight="100">

                <ListView.ItemTemplate>
                    <DataTemplate>

                         <ViewCell>
                 
                            <Grid VerticalOptions="CenterAndExpand" Padding = "20, 0" >
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>

                                <Image
                                      Grid.RowSpan="2"
                                      Aspect="AspectFill"
                                      HeightRequest="60"
                                      Source="{Binding ImageUrl}"
                                      WidthRequest="60" />

                                <Label
                                      Grid.Row="0"
                                      Grid.Column="1"
                                      FontAttributes="Bold"
                                      Text="{Binding Name}" />

                                <Label
                                      Grid.Row="1"
                                      Grid.Column="1"
                                      FontAttributes="Italic"
                                      Text="{Binding Price}"
                                      VerticalOptions="End" />

                                <Image Grid.Row="2" Grid.Column="0"  Source="bear.png" HeightRequest="25" WidthRequest="25">
                                    <Image.GestureRecognizers>
                                        <TapGestureRecognizer
                                             
                                             NumberOfTapsRequired="1" />
                                    </Image.GestureRecognizers>
                                </Image>
                            </Grid>
                  
                           </ViewCell> 

                    </DataTemplate>

                </ListView.ItemTemplate>

            </ListView>


        </StackLayout>

          <ActivityIndicator x:Name="activityIndicator" Color="Red"  VerticalOptions="CenterAndExpand"  HorizontalOptions="CenterAndExpand"  RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.33}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height,Factor=0.33}"    />

    </RelativeLayout>

</ContentPage>

【问题讨论】:

    标签: xaml xamarin xamarin.forms


    【解决方案1】:

    解决办法是将RelativeLayout改为Stacklayout

    <StackLayout
                VerticalOptions="FillAndExpand"
                HorizontalOptions="FillAndExpand">
    
    
        <StackLayout Orientation="Vertical"
                               VerticalOptions="FillAndExpand"
                               Padding="10">
    
            <ListView     ItemsSource="{x:Static data:MonkeyData.Monkeys}"
                            x:Name="CollectionView1"  
                            RowHeight="100">
    
                .....
            </ListView>
    
        </StackLayout>
    </StackLayout>
    

    如果要使用RelativeLayout,则需要使用XConstraintYConstraintWidthConstraintHeightConstraint来布局子视图,而不是VerticalOptions="FillAndExpand"HorizontalOptions="FillAndExpand".

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 2023-03-26
      • 2016-11-22
      • 2018-02-27
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多