如何设置WinJS中的win-listview高度?

5
这真是让我抓狂。我无法弄清楚如何使列表视图的高度自适应。

也就是说,列表视图的高度应该扩展以占用所需的所有空间,并使外部容器提供overflow-y滚动特性。

不幸的是,我似乎找不到任何相关文档。

帮助将会很棒。谢谢!

1个回答

10

默认情况下,ListView控件的高度为400像素。这是在ui-light.css文件的第1421行中设置的。您可以通过在页面上添加规则来覆盖它,例如:

. win-listview { height:100%; /*(或者您可以使用类似“600px”的绝对值)*/ }

此页面的开发中心上,它说...

设置ListView控件的高度

ListView不会根据内容动态调整其高度。要呈现ListView,必须为其高度指定绝对值。Windows Library for JavaScript样式表将ListView控件的高度设置为400像素。

从设计角度来看,您可能不应该在ListView上进行垂直滚动。它们被设计为水平布局(与应用程序一般相同)。同时使用水平和垂直滚动可能会导致用户体验不佳。我写了一些关于此问题的文章


非常好的回复!非常感谢!我考虑过使用水平滚动,但对于某些模式来说,它感觉相当尴尬。例如,下载列表,使用垂直列表会更加高效和直观。 - RadiantHex
1
是的,我同意。有时候很难想象它如何适应水平列表。我总是对那些拥有巨额设计预算的顶级应用程序印象深刻,他们如何重新构建内容以更好地适应水平方向。在我的codeSHOW应用程序(aka.ms/codeshowapp)中,我展示源代码文件并结合了水平和垂直两种方式。有时候没有其他办法。 - Jeremy Foster
如果您只能使用绝对单位,如何呈现一个listView,以便每个项目的高度在5或6行中从上到下均匀分布?我有一个完整的结果页面,在页面底部有一个不美观的间隙。我应该使用repeater并使用flexbox创建自定义布局吗?另外,你的快速入门视频帮助我通过了70-480考试!做得好,谢谢! - Chris Spittles
我相信在 Windows 8.1 中默认的 ListView 布局无法实现你所要求的内容,但你可以实现一个自定义布局并几乎做任何你想做的事情。请参阅我的 codeShow 项目 中的 ListView 演示,并查看圆形部分。那是使用自定义布局的。 - Jeremy Foster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接