WinJS.UI.ListView水平

时间:2012-05-26 17:48:11

标签: html5 windows-runtime winjs

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

<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上有一个属性,如果列表在这里是http://msdn.microsoft.com/en-us/library/windows/apps/br211788.aspx,则返回一个布尔值。 我也可以使用GridView,但即便是首先垂直显示项目。

2 个答案:

答案 0 :(得分:2)

ListView将始终垂直布局内容项。即使使用GridLayout,项目依次填充每列。

定义了一个水平属性,但是如果你看一下ui.js中的源代码,你会看到它被硬编码为GridLayout为真,而ListLayout为false。

答案 1 :(得分:1)

想出来。答案是here。为ListView控件指定自己的高度并使其更宽。确保它只有足够高才能容纳一个项目,而下一个项目将被抛出右侧。在我的情况下,我有固定数量的项目,并将工作正常。这可能不适用于可变数量的项目。

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

.win-listview 
{
    height: 500px; 
    width: 500px; 
    border: 2px solid gray;
}