Python 使用SDL2在软键盘上调整Kivy Android应用程序的窗口大小

Python 使用SDL2在软键盘上调整Kivy Android应用程序的窗口大小,python,kivy,window-resize,pysdl2,Python,Kivy,Window Resize,Pysdl2,我目前正在使用Python和Kivy框架开发Android应用程序。屏幕的大部分不动产由文本输入小部件使用。我想在android软键盘弹出时调整此文本输入的大小,以便文本输入正好在键盘顶部结束 为了实现这一点,我尝试使用Window.softinput\u mode='resize',当这不起作用时,参考Window.keyboard\u高度来进行我自己的调整大小和定位。根据窗口源代码中的文档和注释,我发现在Android(Kivy 1.9-1.10)上使用SDL2时,两者都不受支持 我测试了W

我目前正在使用Python和Kivy框架开发Android应用程序。屏幕的大部分不动产由文本输入小部件使用。我想在android软键盘弹出时调整此文本输入的大小,以便文本输入正好在键盘顶部结束

为了实现这一点,我尝试使用Window.softinput\u mode='resize',当这不起作用时,参考Window.keyboard\u高度来进行我自己的调整大小和定位。根据窗口源代码中的文档和注释,我发现在Android(Kivy 1.9-1.10)上使用SDL2时,两者都不受支持

我测试了Window.softinput\u mode='Lower\u target',它似乎不起任何作用,而Window.softinput\u mode='pan'可以工作,但没有提供正确的功能

我最后尝试的是设置Window.softinput\u mode='pan',并使用绑定到on_keyboard事件的函数调用打印Window.top的值,以便如果平移只是将窗口位置向上移动,我可以使用该参考点进行定位和调整大小。但是,向上平移时,Window.top的值不会发生变化

另一个引用此问题并给出一个工作示例的堆栈流使用了resize模式,而该模式在使用SDL2时不起作用


是否有其他解决方案来实现此功能,或者有其他供应商提供SDL2,在Android上运行良好?

这似乎是一个bug,所以我认为第一步是报告它。可能有人会修复它或提示您解决问题


在谷歌搜索主题时,我发现了这个
get\u keyboard\u height()
。由于它是安卓系统的一部分,请尝试将此配方添加到buildozer需求中。它可能会修复
窗口。键盘高度
或者只提供
获取键盘高度()
功能来手动获取正确的高度。

我设置
软输入模式='
并将小部件大小绑定到
窗口是否正确。键盘高度
不起作用<代码>键盘高度不反映实际高度?正确。对于SDL2窗口提供程序,键盘高度始终为0。我试图找出是否有人能够通过使用不同的方法或不同的窗口提供商来实现基于键盘大小的Kivy Android应用程序的大小调整。