1

有一些项目并希望水平显示它们,并且在空间不足时需要将它们换行到下一行。

<div class="historyItem">
    <div id="testTemplate" data-win-control="WinJS.Binding.Template" style="display:none">
        <div class="itemTemp">
            <h6  data-win-bind="innerText: desc"></h6>
        </div>
    </div>
</div>
<div id="listViewForecast"
    data-win-control="WinJS.UI.ListView"
    data-win-options="{itemTemplate:testTemplate, selectionMode: 'none', tapBehavior: 'none', swipeBehavior:'none',  layout: {groupInfo: groupInfo, type: WinJS.UI.GridLayout}}"
    >
</div>

现在我不知道如何使它“水平”,但我知道你应该能够做到这一点,因为 ListView 上有一个属性,如果列表是水平的,则返回布尔值 h​​ttp: //msdn.microsoft.com/ en-us/library/windows/apps/br211788.aspx。我也可以使用 GridView,但即使是首先垂直显示项目。

4

2 回答 2

2

ListView 将始终垂直排列内容项。即使使用 GridLayout,项目也会依次填充每一列。

定义了一个水平属性,但是如果您查看 ui.js 中的源代码,您会发现它被硬编码为 GridLayout 为 true 而 ListLayout 为 false 。

于 2012-05-29T08:30:28.157 回答
1

弄清楚了。答案在这里。为 ListView 控件指定您自己的高度并使其更宽。确保它的高度仅足以容纳一件物品,并且下一件物品将被扔在右侧。就我而言,我有固定数量的项目并且可以正常工作。这可能不适用于可变数量的项目。

只需将以下类添加到您的 html 并指定您的宽度和高度。页面中的所有 ListView 都使用此类设置样式。

.win-listview 
{
    height: 500px; 
    width: 500px; 
    border: 2px solid gray;
}
于 2012-06-08T17:16:46.853 回答