在开发过程中有时候我们需要自定义组件的焦点走焦逻辑,nextFocus可以帮助我们实现这种功能。

参数为设置当前容器组件的自定义走焦规则,没设置自定义走焦或者设置自定义组件容器不存在,仍进行默认走焦规则。

以下参数对象的说明:

forward     通过tab键走焦到组件的id。默认值为重置forward为空。

backward      通过shift+tab键走焦到组件的id。默认值为重置backward为空。

up     通过方向键上键走焦到组件的id。默认值为重置up为空。

down    通过方向键下键走焦到组件的id。默认值为重置down为空。

left    通过方向键左键走焦到组件的id。默认值为重置left为空。

right      通过方向键右键走焦到组件的id。默认值为重置right为空。

示例

@Entry
@Component
struct Index {
  @State idList: string[] = ['A', 'B', 'C', 'D', 'E', 'F'];

  build() {
    Column({space: 10}) {
      Row({space: 10}) {

        Button("id: " + this.idList[0])
          .id(this.idList[0])
          .nextFocus({forward: 'C', backward: 'M', up: 'E', right: 'F', down: 'B', left: 'D'});
        Button("id: " + this.idList[1])
          .id(this.idList[1])
      }
      Column({space: 10}) {
        Button("id: " + this.idList[2])
          .id(this.idList[2]);
        Button("id: " + this.idList[3])
          .id(this.idList[3])
          .nextFocus({forward: 'F'});
      }
      Row({space: 10}) {
        Button("id: " + this.idList[4])
          .id(this.idList[4]);
        Button("id: " + this.idList[5])
          .id(this.idList[5])
          .nextFocus({forward: 'B'});
      }
    }
  }
}

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐