0

我试图想办法从底部扩展 Windows 8 listView。本质上,我有一个 listView 填充了一些项目。我希望这些项目从 listView 容器的底部开始。当我添加到列表中时,我希望它们向上移动。一旦 listView 容器达到/填充所需的高度,我希望 listView 滚动条变得可用。

就目前而言,我可以在屏幕底部放置一个 listView 并将其设置为仅包含我的项目的高度。但是当我添加项目时,它只是保持相同的高度并添加滚动条。如果我将 listView 设为我想要的最终高度,但只有少数项目没有填满整个高度,那么我的项目从顶部开始。

如果这是可能的,有什么想法吗?

4

1 回答 1

1

listview仅支持使用GridLayout 和 ListLayout来布局列表视图内的内容position: absolute(在调试器中使用 DOM 资源管理器查看)。css 或 js 不太可能来帮助自定义列表视图布局以满足您从下到上布局的要求。可以尝试查看是否为列表视图构建了自定义布局管理器。但是afaik - 它没有记录。

您可能需要在自定义 winjs 控件中构建。自定义控件可以使用-ms-flexbox显示样式(css3 flex 布局),它允许将内容打包到一个 div 中。自定义控件需要绑定到 dataSource,并使用给定的项目模板呈现项目。

示例:您可以看到页面内容元素被打包到页面末尾。html:

<div class="flexlayout fragment">
    <header role="banner">
        <button class="win-backbutton" disabled type="button"></button>
        <h1 class="titlearea win-type-ellipsis">
            <span class="pagetitle">flexlayout page</span>
        </h1>
    </header>
    <section role="main">
        <div class="content">
            <h3>page content goes here.</h3>
            <h3>page content goes here.</h3>
            <h3>page content goes here.</h3>
        </div>
    </section>
</div>

CSS:

.flexlayout.fragment .content
{
    display: -ms-flexbox;
    -ms-flex-direction: column;
    -ms-flex-pack: end;

}

.fragment {
    display: -ms-grid;
    height: 100%;
    width: 100%;
}
于 2013-07-09T07:16:02.180 回答