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