ListView中的Xamarin Forms图像给应用程序性能不佳

时间:2016-05-07 10:19:01

标签: c# android xamarin xamarin.forms

我在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这么慢?

1 个答案:

答案 0 :(得分:7)

在具有Xamarin.Forms的Android上,我的图像性能问题非常严重。这是因为我在开发过程中只在Droid项目的 Resources / drawable 文件夹中只有一个尺寸的图像。

只要将适当大小的图像放入 drawable-hdpi,-mdpi,-xhdpi 等,就会有很大的性能提升。