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 23无 24 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