0

我正在尝试创建一个包含各个部分的网格应用程序,并且每个部分都被提取到特定的列表视图但是我遇到了一个问题,您只能让一个列表视图覆盖整个页面,以便正确水平滚动列表中的对象意味着没有空间容纳另一个。这是我现在使用的代码:

WinJS.xhr({ url: "http://search.twitter.com/search.json?q=%23windows8&rpp=100}).then(

            function (response) {
                var json = JSON.parse(response.responseText.toString());
                var list = new WinJS.Binding.List(json.result);
                gridView1.winControl.itemDataSource = list.dataSource;

                //gridView1 is ID of listview 

            }

使用上面的代码,我可以轻松地显示包含结果数组的对象网格,然后将它们绑定到列表。但是,现在我想要不同 URL 的多个类似列表视图,这些列表视图显示为 WinJS 网格应用程序中显示为默认界面的列表视图。

更清楚地说,这就是我想要的 - 使用 Twitter API URL1 在网格的第一部分中使用 Twitter 用户名,然后我希望在相邻网格中使用 twitter 搜索结果,因此我必须使用另一个列表视图 b 使用 URL2。

我如何找到解决此问题的方法。感谢你的帮助。

4

2 回答 2

1

是的,想出来自不同列表的所有不同项目的共同点并将您的数据投影到单个分组列表是一种选择。你可能不想放弃你想做的事情。如果您将多个 ListViews 放在一个包裹在 flexbox 中的页面上,那么滚动应该不会有任何问题。如果您在 ListView 演示中查看我的codeSHOW应用程序,您会发现我有粗略的等价物。Windows 实际上非常聪明地处理平移的方式。

**编辑**

这是我所说的一个粗略的例子。同样,您可以在codeSHOW的 ListView 演示中找到一个工作示例。

<!-- HTML snippet -->
<div class="hub">
  <div>
    <div id="list1" data-win-control="WinJS.UI.ListView"></div>
  </div>
  <div>
    <div id="list2" data-win-control="WinJS.UI.ListView"></div>
  </div>
  <div>
    <div id="list3" data-win-control="WinJS.UI.ListView"></div>
  </div>
</div>

/* CSS snippet */
.hub {
  display:-ms-flexbox; /* this will lay the lists out horizontally */
  overflow-x:auto; /* set the flexbox to scroll its overflow */
}

/* select each of the sections */
.hub > div {
  padding-right:80px; /* 80px of space between "sections" */
}

/* choose whatever sizes you want for your list views. You may want to make them wide
enough that they don't scroll because it can get a little awkward to have scrolling
within scrolling */
[data-win-control=WinJS.UI.ListView] {
  width: 640px;
  height: 480px;
}
于 2013-01-15T17:56:35.407 回答
0

您可以通过将结果集聚合到单个数据源中来解决此问题。

您可以通过将数据投入到WinJS.Binding.List已设置分组功能的数据中来做到这一点,并以您知道如何对它们进行分组的方式为您的数据分配属性。WinJS.Binding.List在执行文件/新建/项目时在 Visual Studio 中找到的“网格”模板中可以找到a 分组的示例。

或者,您可以构建自己的数据- MSDN 上有一个很好VirtualizedDataSource教程。

于 2013-01-15T17:10:30.117 回答