【问题标题】:Kivy keyboard heightKivy 键盘高度
【发布时间】:2014-08-14 02:01:42
【问题描述】:

对于我在 Kivy 中创建的应用程序,我想知道键盘的高度,因此我可以相应地定位小部件。我听说 plyer (https://github.com/kivy/plyer) 适合跨平台(我希望为 Android 和 iOS(以及 Windows 手机)开发),但它似乎不包括键盘控制。

如何在 Android(和 iOS)中获取有关键盘高度的信息?我在 Python 3 中编程(如果您在 Python 3 中不知道,2.7 也会有所帮助)。硬编码的键盘高度会很糟糕,因为键盘高度不同。

【问题讨论】:

  • 在android中你没有。它因安装的键盘而异。没有办法查询它。相反,您可以指定是否要调整应用大小(将在剩余空间中再次布局)或平移(将向上移动以使光标始终在屏幕上)。
  • 请注意,您不能在 Android 或 iOS 上使用 Python3。 Buildozer、python-for-android、pyjnius、python-ios 和 pyobjus 尚不支持 Python3。
  • 我知道 Python3 的事情,所以我尝试对我的应用程序进行编程,让它在这两种情况下都可以工作,这样我就可以在未来得到证明。 @Gabe 不幸的是,我需要一个小部件大小才能依赖于键盘高度,我不打算向上移动它。
  • 请注意,现在 Python3 支持

标签: android python ios keyboard kivy


【解决方案1】:

master 分支包含一些新添加的内容,可让您管理它。使用Window (from kivy.core.window import Window) 你有:

  • Window.keyboard_height 给出软键盘的当前高度
  • Window.softinput_mode 可以是 '' 中的任何一个(空),在这种情况下,您可以使用上面的 keyboard_height,'pan' 在这种情况下,kivy 视图向上移动,因此键盘不会重叠,或者 'resize',其中kivy 视图已调整大小以适应键盘顶部和屏幕顶部之间的空间。

这些在Window 的文档中。

在当前的稳定版本中并没有真正的好方法来做到这一点,但也许你可以使用 pyjnius 调用平移或调整大小模式。

【讨论】:

  • keyb_height = Window.keyboard_height 在我的电脑上被忽略,在 Android 上它给出:'WindowPygame' 对象没有属性键盘高度。这是否意味着我必须等待 Kivy 的下一个版本(或升级到不稳定的版本)还是因为其他原因而出现此错误?
  • 这些设置是 master 分支中的新设置,还没有在任何稳定版本中。所以是的,您需要等待或升级。值得一提的是,master 分支通常非常稳定,使用它应该不会有任何问题。
猜你喜欢
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 2016-10-21
  • 2015-05-06
  • 2015-03-05
  • 2015-11-14
相关资源
最近更新 更多