gpt4 book ai didi

android - Kivy 应用程序在设备上运行时不使用 VKeyboard

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:52 26 4
gpt4 key购买 nike

我已经为此苦苦思索了一段时间。希望比我更了解 kivy/and/android 的人能够回答我的问题(kivy 允许你为 android 编译 python 并包含一些不错的 UI 东西)

我已经创建了自己的 kivy vkeyboard 布局 json 文件,它在 Windows 中使用模拟器运行良好。但是当我将它安装到设备上时,它从不使用我的自定义键盘。

我认为这是因为我没有将 .json 文件放在设备上的正确位置(但我真的不知道)

我的代码在下面

应用名称.kv

...
<NumericVKeyboard>:
layout: "numeric"
size: (700,70)

<more rules>...

然后我在我创建的小部件类中使用它

from kivy.uix.textinput import TextInput
class NumericTextInput(TextInput):
def on_focus(self, instance, value, *largs):
win = self.get_root_window()

if win:
win.release_all_keyboards()
win._keyboards = {}

if value: #User focus; use special keyboard
win.set_vkeyboard_class(NumericVKeyboard)
print "NumericVKeyboard:", win._vkeyboard_cls, VKeyboard.layout_path
else: #User defocus; switch back to standard keyboard
win.set_vkeyboard_class(VKeyboard)
print "VKeyboard:", win._vkeyboard_cls, VKeyboard.layout_path

return TextInput.on_focus(self, instance, value, *largs)

在 Windows 上一切正常,并且它正确使用了 NumericVKeyboard。但是当我构建 apk 并将其放在设备上时,它只使用默认键盘而不是我的自定义键盘

如果有帮助,这是来自 adb logcat 的消息

<snip>
I/python ( 1261): NumericVKeyboard: <class 'base.NumericVKeyboard'> <kivy.properties.StringProperty object at 0x5d4db1f0>

I/LatinIME( 284): InputType.TYPE_NULL is specified

W/LatinIME( 284): Unexpected input class: inputType=0x00000000 imeOptions=0x00000000
</snip>

请帮忙……我快要绝望到要写我自己的“键盘”小部件了。但我真的很想用 kivy 的 vkeyboard

最佳答案

嗯,我不确定为什么我花了这么长时间才弄明白。但事后看来,诀窍是双重的,而且是显而易见的……

我必须将 keyboard_mode=dock 添加到 kivy 的 Config.ini 文件中。

我的 Assets 目录中必须有我的 numeric.json 布局。

最后也没那么难。出于某种原因,我只是在努力让它工作。

关于android - Kivy 应用程序在设备上运行时不使用 VKeyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com