【问题标题】:How to remove focus in winjs listview based on borders element如何在基于边框元素的winjs listview中移除焦点
【发布时间】:2015-06-28 07:03:35
【问题描述】:

我的应用程序具有响应性。假设我的列表视图中有 140 个项目,最初我在全屏显示中每行显示 6 个项目,如果调整应用程序大小,每行项目数可能会根据调整后的显示区域而减少。让我们假设,每行 3 个项目。

现在我想要的是,当用户焦点在顶行并且用户仍然按下 KEY_UP(38) 时,我想移除焦点并将其设置在其上方的菜单上 strong>,如果用户在一行中最左边的元素上并且仍然按下 KEY_LEFT(37),我想 移除焦点并将其设置到左侧的菜单

现在,我可以在 listview 上添加 keydown 事件监听器并检测 KEY_UP(38) 并移除焦点只有在每行的项目数稳定时。但是如果用户调整应用程序的大小,那么该功能将不起作用。现在,如何解决这个问题。

我想我已经正确解释了我的问题。如果没有,请告诉我。

【问题讨论】:

    标签: javascript listview winjs windows-applications


    【解决方案1】:

    您可以尝试使用XYFocus。连接 XYFocus 以监听箭头键,如 this sample 所示:

    WinJS.UI.XYFocus.keyCodeMap.up.push(WinJS.Utilities.Key.upArrow);
    WinJS.UI.XYFocus.keyCodeMap.down.push(WinJS.Utilities.Key.downArrow);
    WinJS.UI.XYFocus.keyCodeMap.left.push(WinJS.Utilities.Key.leftArrow);
    WinJS.UI.XYFocus.keyCodeMap.right.push(WinJS.Utilities.Key.rightArrow);
    

    我不确定 ListView 项目是否可聚焦。如果没有,请在项目模板中添加一个 tabindex 来执行此操作。

    让我知道这是否有效!

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      相关资源
      最近更新 更多