Xamarin.Forms.ListView与Xamarin.FormsScrollView性能

时间:2018-03-19 19:29:02

标签: c# performance listview xamarin scrollview

我需要建议,因为我有一个复杂的视图,同样复杂的 ViewModel (= BindingContext)。

ListView ScrollView 中,此视图最多可显示30次,但大多数通常为5-8次。 (使用iOS和Android)

事实:

  • View及其ViewModel需要相当长的时间来初始化
  • View需要ViewModel无条件地使用
  • 视图包含一个网格(5个,7个,大部分为绝对/星级)+一个嵌套的StackLayout和一个由另一个网格组成的更大的ContentView(9个,8个)。
  • 所有视图中只有一个ContentView的IsVisible一次为true
  • ContentView还包含一个最多包含5行的Grid,每行包含3个子项。行数是动态变化的,并且依赖于ViewModel
  • 大多数主要视图子项是按钮,标签和输入字段。最多10张图片。

当我写下来时,我已经感觉到,View很复杂,可以将它用作ListView中的ViewCell。我无法通过这种方式成像平滑滚动,但我还没有实现。

ScrollView用法:(高初始化时间,完美滚动)

  • ScrollView内部此视图的8倍导致初始化时间最多为5秒。
  • 滚动非常顺利

ListView用法:(适度的初始化时间,可怕的滚动)

  • 在ListView中查看此视图​​最多需要2秒才能初始化(CachingStrategy RecycleElements)
  • 滚动非常糟糕,因为ViewModel必须在初始化时计算得太多。

你能给我什么建议? 你会怎么做? ScrollView还是ListView?在本机项目中完全创建视图?

我将不得不处理View和ViewModel并坚持使用性能提示(仅使用LayoutOptions.Fill,不使用嵌套布局等)

但这将是非常耗费时间的,而且我不想走在路上注意到它是一个死胡同。

0 个答案:

没有答案