如何使用Samsung Tizen Gear s2中的挡板滚动列表中的项目?

时间:2015-10-27 12:31:39

标签: javascript scroll rotation ring tizen-web-app

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

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

例如,在''settings''中,您有一个垂直列表,您可以通过旋转挡板来滚动项目。

根据这个问题我知道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()中滚动浏览列表中的项目?

1 个答案:

答案 0 :(得分: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"(不是"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);
});

我希望你会发现这些例子很有用。