我在Xamarin.Forms便携式项目中有简单的listview。在Android Listview上,如果我将简单图像放在ViewCell中并将图像与路径绑定,则速度非常慢。图像大小不大于10Kb。在滚动时以及在我滑动菜单(打开/关闭)时可以看到应用程序性能不佳。即使在设备上,情况也与模拟器上的情况完全相同。
这是我的listview的XAML代码
<ListView x:Name="newsList" CachingStrategy="RecycleElement" RowHeight="70" SeparatorVisibility="None">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Image HeightRequest="50" Aspect="AspectFill" Source="{Binding Image}"></Image>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
应用程序具有简单的主细节页面菜单用于导航。我绑定3-4(测试)项目到ListView,它是非常非常慢。我使用的是2.2.0.31版本的表格。
这很奇怪,因为我的ListVies中没有大型dana。
后端代码非常简单地用于测试:
public partial class News : ContentPage
{
public List<Model.NewsData> NewsListData;
public News()
{
InitializeComponent();
NewsListData = new List<Model.NewsData>();
TestData();
}
public void TestData()
{
NewsListData.Add(new Model.NewsData()
{
Image = "placeholdercircle.png",
Title = "Some Stuff Here"
});
newsList.ItemsSource = NewsListData;
}
}
我的News.xaml页面上只有ListView。我正在使用RoundedImage库但不在此列表中,而不是在此视图中。
我在这里做错了什么,为什么我的ListView这么慢?
答案 0 :(得分:7)
在具有Xamarin.Forms的Android上,我的图像性能问题非常严重。这是因为我在开发过程中只在Droid项目的 Resources / drawable 文件夹中只有一个尺寸的图像。
只要将适当大小的图像放入 drawable-hdpi,-mdpi,-xhdpi 等,就会有很大的性能提升。