ListView 无法使用 Xamarin Forms 正确呈现
Posted
技术标签:
【中文标题】ListView 无法使用 Xamarin Forms 正确呈现【英文标题】:ListView not rendering properly using Xamarin Forms 【发布时间】:2016-09-24 14:42:53 【问题描述】:自从我上次做移动开发以来已经有一段时间了。现在,我正在尝试使用 Xamarin Forms 更新我的知识。
我创建了一个 Xamarin Froms 项目。但是,我在将数据集合呈现到 ListView 内容中时遇到了一些问题。我只能看到树标签的第一个元素。
这是 XAML 代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ExampleBooks.View.BooksView"
Title="Books">
<ScrollView>
<StackLayout>
<ListView x:Name="ListViewBooks"
ItemsSource="Binding Books">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Padding="10" Orientation="Vertical">
<Label Text="Binding Title" FontSize="Large" VerticalOptions="Center"></Label>
<Label Text="Binding Author" FontSize="Small"></Label>
<Label Text="Binding Description" FontSize="14"></Label>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ScrollView>
</ContentPage>
这是使用上述代码渲染数据的截图:
如您所见,Autor 和 Description 的 Label 未显示。据我所知,应该显示 ListView 中嵌套 StackLayout 内的所有树元素。但是,我只能看到第一个。
我尝试过使用 Padding 和 Spacing 属性。但是,它们似乎都没有帮助。
我在这里遗漏了什么吗?任何帮助/线索都会有所帮助。
P.D.我正在使用安卓模拟器。然而,同样的情况也发生在 Windows Phone 模拟器中。
谢谢
【问题讨论】:
如果您不绑定作者和描述,而只是将它们设置为静态文本,是否有效?顺便说一句,您永远不应该将 ListView 放在 ScrollView 中,这不会导致您的问题,但仍然是一个坏主意。 也尝试从第一个标签中删除 VerticalOptions=Center。 【参考方案1】:增加你的ListView
的RowHeight
:
<ListView x:Name="ListViewBooks"
ItemsSource="Binding Books"
RowHeight="100">
【讨论】:
@MikePR 我建议不要为您的ListView.RowHight
设置静态值,因为文本大小和位置在不同的设备、方向和由设备控制的文本大小设置上可能会有所不同。最好将ListView.HasUnevenRows
设置为true
。以上是关于ListView 无法使用 Xamarin Forms 正确呈现的主要内容,如果未能解决你的问题,请参考以下文章
Json 到 ListView - 无法将类型转换为 IEnumerable - Xamarin
无法捕获 Xamarin ListView GroupHeader 单击事件