在android中设置输入法编辑器软键盘的显式焦点

在android中设置输入法编辑器软键盘的显式焦点,第1张

概述我正在使用 Android的标准软键盘输入法编辑器.在按下特定键并且edittext视图具有焦点后,我在我的android模拟器上显示软键盘.我的目的是在屏幕上显示后将焦点设置在软键盘上.我知道软键盘通常用于没有硬键盘的输入,但在我的情况下,我正在开发的应用程序需要此功能,因为它将在自定义设备上运行,并且Android的源代码正在被修改以用于自定义功能.有没有人知道如何解决这个问题?触摸模式是否可 我正在使用 Android的标准软键盘输入法编辑器.在按下特定键并且edittext视图具有焦点后,我在我的androID模拟器上显示软键盘.我的目的是在屏幕上显示后将焦点设置在软键盘上.我知道软键盘通常用于没有硬键盘的输入,但在我的情况下,我正在开发的应用程序需要此功能,因为它将在自定义设备上运行,并且AndroID的源代码正在被修改以用于自定义功能.有没有人知道如何解决这个问题?触摸模式是否可能无法在键盘上设置焦点?

编辑:澄清

抱歉暧昧.基本上我在以下情况下需要软键盘中的以下功能.

>用户在EditText上放置光标(使用键盘).因为他使用的是键盘,所以应用程序不会显示软键盘.
>用户按下键盘上的SPECIAL键以调出软键盘.
>焦点应该从EditText更改为SOFTKEYBOARD,这意味着用户应该能够使用硬键盘导航并选择软键盘上的键.当然,这意味着应将关键事件添加到标准软键盘中.
>用户选择一个键后,按下Enter键(例如),键字符应出现在edittext上.

现在的问题是,当我调出软键盘时,FOCUS仍然在编辑文本上.我想知道是否可以将焦点放在软键盘上并使用硬键盘移动它.正如我之前告诉过你的那样是自定义功能.也许我正在以错误的方式解决这个问题,一个带键盘视图的简单d出窗口就足够了.

Lauren我认为你是正确的,因为标准软键盘是作为服务实现的,并且不遵循常规视图的规则.

任何建议表示赞赏.

谢谢

解决方法 我认为这里有两种“焦点”:

> EditText焦点是必要的,以确保键盘事件只有一个接收器
>键盘焦点,表示键盘可见,按键可以按下.

据我所知,在androID中,只有EditText才能获得焦点.键盘在服务中运行并获得触摸事件,感谢特殊的Insets课程.

如果你只需要强制键盘可见性,你应该尝试this question的答案.

编辑

我认为有两种方法可以实现,具体取决于您是希望此键盘特定于某个活动还是随处可用.

>特定活动

据我了解,负责显示键盘视图的inputmethodservice将不允许您实现此目的.

我最好的建议是你创建一个具有这种“可聚焦键”功能的专用键盘视图(扩展键盘视图将是一个很好的起点).

您可以更改键盘可见性(使用VIEw.VISIBLE和VIEw.GONE)使其显示和消失.

然后,您应编写自己的行为以突出显示具有焦点的键并相应地移动它.

您的活动还必须记住最后一个专注于向其发送文本或keyCodes的EditText.

>系统范围

如果您需要在系统的任何位置都可以使用此行为,那么您必须提供自己的inputmethodservice.我建议您查看this post以及SDK中的SoftKeyboard sample.

请注意,您还需要创建一个自定义的KeyboardVIEw,如上所述,但无需记住EditText焦点.

总结

以上是内存溢出为你收集整理的在android中设置输入法编辑器/软键盘的显式焦点全部内容,希望文章能够帮你解决在android中设置输入法编辑器/软键盘的显式焦点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存