• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.inputMethodList (输入法切换列表控件)
2<!--Kit: IME Kit-->
3<!--Subsystem: MiscServices-->
4<!--Owner: @illybyy-->
5<!--Designer: @andeszhang-->
6<!--Tester: @murphy1984-->
7<!--Adviser: @zhang_yixin13-->
8
9本模块主要面向系统应用和输入法应用,提供输入法切换列表控件,控件中显示默认输入法子类型和三方输入法应用列表,对于默认输入法应用,提供模式切换入口。
10
11> **说明:**
12>
13> 该组件从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
14
15## 导入模块
16
17```ts
18import { InputMethodListDialog } from '@kit.IMEKit';
19```
20
21## 子组件
22
2324
25## 属性
26不支持[通用属性](../apis-arkui/arkui-ts/ts-component-general-attributes.md)
27
28## InputMethodListDialog
29
30InputMethodListDialog({controller: CustomDialogController, patternOptions?: PatternOptions})
31
32输入法切换列表弹窗。
33
34**装饰器类型:**@CustomDialog
35
36**系统能力:** SystemCapability.MiscServices.InputMethodFramework
37
38**参数:**
39
40| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
41| -------- | -------- | -------- | -------- | -------- |
42| controller | [CustomDialogController](../apis-arkui/arkui-ts/ts-methods-custom-dialog-box.md#customdialogcontroller) | 是 | - | 输入法切换列表弹窗控制器。 |
43| patternOptions | [PatternOptions](#patternoptions) | 否 | - | 输入法模式选项(仅默认输入法支持)。 |
44
45## PatternOptions
46
47**系统能力:** SystemCapability.MiscServices.InputMethodFramework
48
49| 名称 | 类型 | 只读 | 可选 | 说明 |
50| -------- | -------- | -------- | -------- | -------- |
51| defaultSelected | number | 否 | 是 | 非必填。默认选择的模式。 |
52| patterns   | Array<[Pattern](#pattern)> | 否 | 否 | 必填。模式选项的资源。 |
53| action | (index: number) => void | 否 | 否 | 必填。模式选项改变时的回调。 |
54
55## Pattern
56
57**系统能力:** SystemCapability.MiscServices.InputMethodFramework
58
59| 名称 | 类型 | 只读 | 可选 | 说明 |
60| -------- | -------- | -------- | -------- | -------- |
61| icon | [Resource](../apis-arkui/arkui-ts/ts-types.md#resource) | 否 | 否 | 必填。默认图片资源。 |
62| selectedIcon | [Resource](../apis-arkui/arkui-ts/ts-types.md#resource) | 否 | 否 | 必填。选中时的图片资源。 |
63
64##  事件
65
66不支持[通用事件](../apis-arkui/arkui-ts/ts-component-general-events.md)
67
68##  示例
69
70```ts
71import { Pattern, PatternOptions } from '@kit.IMEKit';
72
73@Entry
74// 设置组件
75@Component
76struct SettingsItem {
77  @State defaultPattern: number = 1;
78  private oneHandAction: PatternOptions = {
79    defaultSelected: this.defaultPattern,
80    patterns: [
81      {
82        icon: $r('app.media.hand_icon'),
83        selectedIcon: $r('app.media.hand_icon_selected')
84      },
85      {
86        icon: $r('app.media.hand_icon1'),
87        selectedIcon: $r('app.media.hand_icon_selected1')
88      },
89      {
90        icon: $r('app.media.hand_icon2'),
91        selectedIcon: $r('app.media.hand_icon_selected2'),
92      }],
93    action:(index: number)=>{
94      console.info(`pattern is changed, current is ${index}`);
95      this.defaultPattern = index;
96    }
97  };
98  private listController: CustomDialogController = new CustomDialogController({
99    builder: InputMethodListDialog({ patternOptions: this.oneHandAction }),
100    customStyle: true,
101    maskColor: '#00000000'
102  });
103
104  build() {
105    Column() {
106      Flex({ direction: FlexDirection.Column,
107        alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
108        Text("输入法切换列表").fontSize(20)
109      }
110    }
111    .width("13%")
112    .id('bindInputMethod')
113    .onClick((event?: ClickEvent) => {
114      this.listController.open();
115    })
116  }
117}
118```
119示例效果图:
120![示例效果图](./figures/示例效果图.png)