Xamarin表单 - 堆叠的两个ListView

时间:2016-07-06 15:37:17

标签: listview xamarin.forms stackpanel

我有一个简单的内容页面,我想要两个ListViews。我希望ListViews堆叠在一起。

如果我将它们添加为StackPannel的一部分,则每个ListView会垂直占据View的一半。但是,我希望第一个(顶部)ListView在滚动时一直展开,然后拾取第二个ListView。因此,View的高度基本上必须是每个ListView组合的高度。

我可以通过1个ListView来完成这个并且只进行分组,但在这种情况下,我想要两个完全展开的单独ListView。

实现这一目标的诀窍是什么?我应该使用ScrollView元素吗?

1 个答案:

答案 0 :(得分:2)

免责声明:建议不要在ScrollView中使用ListView。

答案:是的,使用ScrollView但是(在downvoting之前继续阅读下面)你必须处理Scroll的影响(至少在iOS上)。

来自Xamarin的人在Evolve 16应用程序中做到了这一点(来源:https://github.com/xamarinhq/app-evolve

基本上(根据我的理解),您需要按照以下步骤操作:

  1. NonScrollableListView。在Android上,它与调节器Listview相同。在iOS上,它将ListView的滚动设置为false(因此,它不会干扰ScrollView)。
  2. AlwaysScrollView。同样,在Android上,它只是一个普通的ScrollView。在iOS上,它将AlwaysBounceVertical设置为true。
  3. 我不确定我是否足够清楚。让我知道。 :)

    [编辑〜重要通知!]只是为了说清楚:在ScrollView中使用ListView将使ListView在加载页面后加载整个Collection,从而为您的集合中的每个ITEM创建一个ViewCell。意思是:如果你有一个包含40个项目的Collection,ListView将创建40个ViewCell的实例,而CachingStrategy无关紧要。在Andriod上,性能最受关注。因此,如果您不控制集合中的项目数量,请注意它可能会严重损害性能。