在android中将本机键盘更改为浮动键盘

在android中将本机键盘更改为浮动键盘,android,Android,是否可以将本机键盘的行为更改为可浮动?我想把android键盘移到屏幕中央。可能吗?或者我需要创建一个自定义键盘?我读了这个。但这里没有详细解释为什么我们不能改变立场。我想知道为什么我们不能改变位置的明确原因?首先-Android中没有“本机键盘”。有一个默认键盘,它可能因OEM而异。没有一个单一的键盘应用程序可以假设安装在所有系统上,甚至大多数系统上 其次,很少有键盘支持浮动模式。这是一个让人头疼的问题,Android编写时假设键盘将是一个矩形,放在应用程序下面。要使用没有很好文档记录的API

是否可以将本机键盘的行为更改为可浮动?我想把android键盘移到屏幕中央。可能吗?或者我需要创建一个自定义键盘?我读了这个。但这里没有详细解释为什么我们不能改变立场。我想知道为什么我们不能改变位置的明确原因?

首先-Android中没有“本机键盘”。有一个默认键盘,它可能因OEM而异。没有一个单一的键盘应用程序可以假设安装在所有系统上,甚至大多数系统上

其次,很少有键盘支持浮动模式。这是一个让人头疼的问题,Android编写时假设键盘将是一个矩形,放在应用程序下面。要使用没有很好文档记录的API进行浮动,您必须经历很多困难。大多数键盘都不这样做。(你需要做的是使用一种称为插入的半文档化功能,告诉框架你的键盘有0个永久高度,但全屏临时高度,并将可触摸的插入限制在你计划使用的区域内,以便其他触摸失败。由于这些功能都没有文档化或文档化程度低,事实上,只有深入研究过它们的人才能知道如何去做)

第三,没有API强制那些支持它的键盘进入浮动模式。Android本身没有浮动键盘的概念,所以它不能告诉键盘浮动

基本上,Android中的键盘API在双方都非常糟糕。最初编写Android的公司从来没有真正认为人们会想出他们所拥有的输入的所有好主意——他们只是认为会是支持新语言和图形皮肤的人。所以他们没有制作一个很好的API。不管出于什么原因,他们都没有对API进行太多的改进,也没有将这样的通用概念引入到操作系统中。除非他们决定花大量的工程精力来改进它,否则我无法预见这种情况会发生变化。

首先,Android中没有“本机键盘”。有一个默认键盘,它可能因OEM而异。没有一个单一的键盘应用程序可以假设安装在所有系统上,甚至大多数系统上

其次,很少有键盘支持浮动模式。这是一个让人头疼的问题,Android编写时假设键盘将是一个矩形,放在应用程序下面。要使用没有很好文档记录的API进行浮动,您必须经历很多困难。大多数键盘都不这样做。(你需要做的是使用一种称为插入的半文档化功能,告诉框架你的键盘有0个永久高度,但全屏临时高度,并将可触摸的插入限制在你计划使用的区域内,以便其他触摸失败。由于这些功能都没有文档化或文档化程度低,事实上,只有深入研究过它们的人才能知道如何去做)

第三,没有API强制那些支持它的键盘进入浮动模式。Android本身没有浮动键盘的概念,所以它不能告诉键盘浮动


基本上,Android中的键盘API在双方都非常糟糕。最初编写Android的公司从来没有真正认为人们会想出他们所拥有的输入的所有好主意——他们只是认为会是支持新语言和图形皮肤的人。所以他们没有制作一个很好的API。不管出于什么原因,他们都没有对API进行太多的改进,也没有将这样的通用概念引入到操作系统中。除非他们决定花大量的工程精力来改进它,否则我无法预见这种情况会发生变化。

谢谢你的详细回答。使用AOSP修改键盘是否有参考资料?@NewDeveloper无法修改键盘,它们是独立的应用程序。您可以编写自己的,但唯一可以控制的是在链接视图元素上设置的输入类型和标志。即使这些只是提示,也不能保证键盘会以你想要的方式对它们做出反应。例如,如果你说某个字段是数字,键盘可能会显示数字键盘、键盘上方的数字行、该应用程序完全独有的内容,或者什么都没有,然后忽略它。谢谢你的详细回答。使用AOSP修改键盘是否有参考资料?@NewDeveloper无法修改键盘,它们是独立的应用程序。您可以编写自己的,但唯一可以控制的是在链接视图元素上设置的输入类型和标志。即使这些只是提示,也不能保证键盘会以你想要的方式对它们做出反应。例如,如果你说某个字段是数字的,键盘可能会显示数字键盘、键盘上方的数字行、该应用程序完全独有的内容,或者什么都没有,然后忽略它。