2

我有一个问题我已经处理了一段时间了。我为 gear s2 做网络应用程序开发。

我想在我的应用程序中执行的操作与您在手表本身中执行的操作完全相同。

例如,在“设置”中,您有一个垂直列表,您可以通过旋转表圈来滚动浏览项目。

我知道根据这个问题Rotarty (ring) on Samsung Tizen Gear S2 这个事件应该被使用:

 rotaryDetentCallback = function rotaryDetentHandler(e) {
    var direction = e.detail.direction;
    if (direction === "CW") {
        // TODO: do something

    } else if (direction === "CCW") {
        // TODO: do something

    }
};

window.addEventListener("rotarydetent", rotaryDetentCallback);

如何使它在 if() 中工作以滚动列表中的项目?

4

1 回答 1

2

这取决于您要显示的列表类型。

对于静态列表项,TAU 框架已经为您解决了这个问题。因此,您不需要在脚本方面添加任何内容。

静态内容示例:

<ul data-role="listview" >
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
  <li>item 4</li>
  <li>item 5</li>
  <li>item 6</li>
  <li>item 7</li>
  <li>item 8</li>
</ul>

对于动态内容,此功能仍然存在问题,但可能。您必须在"pagebeforeshow"(not "pageshow") 中更新动态列表的内容。一旦你这样做了,它的行为就好像它是一个静态列表。

动态内容示例:

在你的 html 中:

<ul id="myListView" data-role="listview" >
</ul>

在你的 js 中:

page.addEventListener("pagebeforeshow", function () {
    var element = document.getElementById("myListView");
    var myListView = tau.widget.Listview(element);

    myListView.addItem("<li>item 1</li>", 1);
    myListView.addItem("<li>item 2</li>", 2);
    myListView.addItem("<li>item 3</li>", 3);
    myListView.addItem("<li>item 4</li>", 4);
    myListView.addItem("<li>item 5</li>", 5);
    myListView.addItem("<li>item 6</li>", 6);
    myListView.addItem("<li>item 7</li>", 7);
    myListView.addItem("<li>item 8</li>", 8);
});

我希望您会发现这些示例很有用。

于 2015-10-27T16:29:08.750 回答