HarmonyOS 鸿蒙Next 输入法列表弹框弹出后点选不起作用
HarmonyOS 鸿蒙Next 输入法列表弹框弹出后点选不起作用 以下是根据文档中弹出当前手机输入法列表的方法,弹出输入法列表后点选某个输入法后不生效(点选的输入法还是之前的输入法)。
@State defaultPattern: number = 1;
private oneHandAction: PatternOptions = {
defaultSelected: this.defaultPattern,
patterns: [
/*{
icon: $r('app.media.startIcon'),
selectedIcon: $r('app.media.startIcon')
},
{
icon: $r('app.media.startIcon'),
selectedIcon: $r('app.media.startIcon')
},
{
icon: $r('app.media.startIcon'),
selectedIcon: $r('app.media.startIcon'),
}*/],
action: (index: number) => {
mtpLog.debug(TAG, `pattern is changed, current is ${index}`)
this.defaultPattern = index;
}
};
private listController: CustomDialogController = new CustomDialogController({
builder: InputMethodListDialog({ patternOptions: this.oneHandAction }),
customStyle: true,
maskColor: '#00000000'
});
this.listController.open()
由于上面这个方法弹出输入法点选后不起作用,所以用了老的api:
changeInputMethod() {
let inputMethodSetting = inputMethod.getSetting();
try {
inputMethodSetting.showOptionalInputMethods((err: BusinessError, data: boolean) => {
if (err) {
mtpLog.error(TAG, `Failed to showOptionalInputMethods: ${JSON.stringify(err)}`)
return;
}
mtpLog.debug(TAG, `Succeeded in showing optionalInputMethods.`)
})
} catch (err) {
mtpLog.error(TAG, `Failed to showOptionalInputMethods: ${JSON.stringify(err)}`)
}
}
但是这个弹框太丑陋了,弹框及其小,感觉不像是个对用户展示的方式,除了这两种方式,还有其他方式吗?或者第一个弹框列表弹出后用户点击不生效的问题应该怎么解决呢?
更多关于HarmonyOS 鸿蒙Next 输入法列表弹框弹出后点选不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有以下两种方案可以使用:
方案1. 可以使用switchInputMethod切换输入法
方案2. 可以引导用户进入到切换输入法的设置页,让客户手动切换,代码实现参考下
import common from '@ohos.app.ability.common';
@Entry
@Component
export struct settingsItem {
build() {
Column() {
Button("输入法切换")
.onClick((event?: ClickEvent) => {
//跳转到切换输入法设置页
let context = getContext(this) as common.UIAbilityContext;
context.startAbility({
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: "set_input",
})
})
}
.height("100%")
.width("100%")
.justifyContent(FlexAlign.Center)
.alignItems(HorizontalAlign.Center)
}
}
更多关于HarmonyOS 鸿蒙Next 输入法列表弹框弹出后点选不起作用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
直接切换输入法,暂时没有这项能力,据了解Android和iOS也没有类似的能力。有个方案,可以引导用户进入到切换输入法的设置页,让客户手动切换,可以参考下。
import common from '@ohos.app.ability.common';
@Entry
// 设置组件
@Component
export struct settingsItem {
build() {
Column() {
TextInput()
Flex({ direction: FlexDirection.Column,
alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text("输入法切换列表").fontSize(20)
}
}
.width("13%")
.id('bindInputMethod')
.onClick((event?: ClickEvent) => {
//跳转到切换输入法设置页
let context = getContext(this) as common.UIAbilityContext;
context.startAbility({
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: "set_input",
})
})
}
}
针对“HarmonyOS 鸿蒙Next 输入法列表弹框弹出后点选不起作用”的问题,可能的原因及解决方案如下:
-
系统Bug:
- 鸿蒙Next作为新系统,可能存在未修复的Bug。尝试更新系统到最新版本,看问题是否得到解决。
-
输入法兼容性问题:
- 某些输入法可能未完全适配鸿蒙Next系统。尝试更换其他输入法,看问题是否依旧存在。
-
权限设置:
- 检查输入法应用是否被授予了必要的权限,如悬浮窗权限等。权限不足可能导致输入法列表弹框无法正常工作。
-
界面响应问题:
- 可能是由于系统界面响应过慢或卡顿导致的。尝试重启手机,看是否能改善界面响应速度。
-
软件冲突:
- 某些已安装的应用可能与系统输入法功能存在冲突。尝试卸载最近安装的可疑应用,看问题是否有所缓解。
如果以上方法均未能解决问题,可能是更深层次的系统或硬件问题。此时,建议直接联系官网客服进行进一步的故障排查和修复。官网地址是:https://www.itying.com/category-93-b0.html 如果问题依旧没法解决请联系官网客服。