如何使用Xamarin Forms处理ListView中的方向(横向或纵向)

时间:2016-07-28 13:11:35

标签: xamarin.forms

我正在使用ItemTemplate(即ViewCell)。我了解了Xamarin文档中的Orientation文章,但没有关于处理ListView方向的问题。

希望得到答案

截屏 http://i.stack.imgur.com/lkMvC.png http://i.stack.imgur.com/5PrJj.png

1 个答案:

答案 0 :(得分:0)

从屏幕截图中可以看出,这不是一个方向问题,你的列表视图在两种情况下都是全宽,你的布局选项可能是错误的。 你能告诉我们你的项目模板定义吗?

您在ViewCell中使用网格?
在这种情况下,首先确保网格的水平选项设置为FillAndExpand,然后检查网格列大小定义。
你能告诉我们网格的列大小定义吗?

如果他们都分配了固定的尺寸,那么无论有多少未用的空间,它们总是那么大。
有两种方法可以让它们占用更多空间。

如果可能,您应该使用“星号”尺寸。您可以在此处将列大小作为可用空间的一部分。 如果您给第一列的大小为1 *
和第二列大小1 *
它们都将占用可用宽度的一半。

您可以使用任何其他数字来选择部分,例如三个尺寸为5 * 3 * 1 *
的列 这将使你的第一列成为第三列的5倍,第二列将是第三列的3倍 同样,总的来说,它们将采用整个可用宽度。

第二列大小调整选项是使用“自动”大小的列,它将根据列中的元素调整列的大小。无论该列(在任何行中)中的最大元素是什么大小,都是列所具有的大小 在这种情况下,要获取整个屏幕宽度,至少有一个列内容应该在其水平选项上有“AndExpand”。
这有点容易,因为它会自动调整列的大小,你只需要用内容正确填充它们,但要小心,因为这种方法要慢得多。

最后,如果遇到性能问题,请考虑使用AbsoluteLayout实现ViewCell。设置可能会有点痛苦,但如果列表视图中有一堆行,并且每行中有一堆数据,那么它应该比网格更快。