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

How to scroll through items in a list using bezel in Samsung Tizen Gear s2?

本文关键字:挡板 列表 项目 滚动 s2 何使用 Samsung Tizen Gear      更新时间:2023-09-26

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

我想在我的应用程序中做的事情与你在手表中做的完全相似。

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

根据这个问题,我知道三星Tizen Gear S2上的Rotarty(戒指)应该使用此事件:

 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()中滚动列表中的项目?

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

对于静态列表项,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);
});

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