2

有没有办法手动触发 ListView 的加载动画?

我在从 Web 服务启动时加载了一些数据,并希望显示一个繁忙的指示器。

 function searchData(url) {

        var promise = DataService.getData(query);

        promise.done(function (result) {
            console.dir(result);
            var bindingList = new WinJS.Binding.List(result);

            sectionListView.winControl.itemDataSource = bindingList.dataSource;

        });
    }

这就是我在 app.onactivated 中所做的

promise = WinJS.UI.processAll();
        promise.done(function () {
            searchData(query);
        });
        args.setPromise(promise);

我读到 ListView 应该在等待承诺时显示繁忙的动画......这是真的吗?或者这是我必须手动执行的操作...在需要时显示和隐藏 div?

谢谢你的帮助...

4

2 回答 2

1

您需要创建自己的自定义列表数据源。WinJS 提供了很容易做到这一点的实用程序。这是针对 Bing Web 服务的一个很好的示例。如果您需要更多关于如何编写自己的数据源/数据适配器的示例,请告诉我,我已经写了一些。

于 2013-02-08T15:41:14.780 回答
1

根据这个线程,只有当 ListView 连接到异步数据源时才会出现进度环,而WinJS.Binding.List是同步的。我认为默认情况下没有任何可用的异步数据源,因此您必须设置自定义数据源才能获得该默认进度环。我建议只设置一个进度环以在您的应用程序启动时运行,并在done您的数据承诺块中将其删除。

于 2013-01-25T14:11:59.467 回答