将ListView和VideoView放置在一起,会在它们之间添加几行空白行

时间:2019-07-09 21:41:25

标签: xamarin xamarin.forms

我在Xamarin中创建了一个页面,其中的表单应显示来自IList数据源的一些项目以及它们后面的视频。

将使用ListView显示项目列表。视频使用VideoView进行显示。

这是实际的页面代码:

<?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:mm="clr-namespace:Plugin.MediaManager.Forms;assembly=Plugin.MediaManager.Forms"
             x:Class="MyApp.Views.ItemDetailPage"
             Title="{Binding Title}">

    <ScrollView>
        <StackLayout Orientation="Vertical" Padding="15">
            <ListView 
                ItemsSource="{Binding Item.Properties}"
                HasUnevenRows="true">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Padding="10">
                                <Label Text="{Binding .}" 
                                    LineBreakMode="NoWrap"
                                    Style="{DynamicResource ListItemTextStyle}" 
                                    FontSize="16" />
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <mm:VideoView x:Name="MyVideo" WidthRequest="320" HeightRequest="190" HorizontalOptions="FillAndExpand" />
            <Button x:Name="BtnPlayStop" Text="Iniciar" Clicked="PlayStop_Clicked" BackgroundColor="Silver" TextColor="White"/>
        </StackLayout>
    </ScrollView>
</ContentPage>

运行该应用程序时遇到的问题是:

  1. 页面最初显示为向下滚动,以便最初观看视频。
  2. 列表视图的最后一个元素和视频之间的空间很大
  3. 很难用手指上下滚动。

我的XAML代码正确吗?我可以采取哪些更改来解决这种奇怪的行为?

编辑:我发现列表视图和视频之间什么都没有。这就是为什么难以滚动的原因。如果将手指放在列表视图中,则可以滚动,就像将手指放在视频或按钮中一样。但是,如果我将手指放在列表视图和视频之间,则不会执行滚动。很奇怪,不是吗?

谢谢 海梅

1 个答案:

答案 0 :(得分:0)

最后,我在此页面中使用了解决方案:https://xamarinsharp.com/2017/05/16/listview-height-issue-in-xamarin-forms-how-to-solve-it/

基本上,这是根据绑定元素的数量在代码后面设置ListView的HeightRequest。

致谢

Jaime