【问题标题】:Bind Keyboard to TextInput while it is hidden on Android Kivy在 Android Kivy 上隐藏时将键盘绑定到 TextInput
【发布时间】:2021-03-26 18:20:23
【问题描述】:

我创建了一个在 Windows 上成功运行的简单 kivy 应用程序。它以产品的条形码为输入并继续进行。我为我的应用程序设计了自己的键盘 + 它也从条形码扫描仪中获取输入(扫描的条形码被放置在焦点文本输入中)。为此,我设置了

    Config.set('kivy', 'keyboard_mode', 'system')

效果很好。

现在,我想在 android 上运行这个应用程序。在 android 上,当 TextInput 获得焦点时,android 的键盘变得可见,这是我不想要的。为此,我将 TextInput 属性 'keyboard_mode' 设置为 'managed' 但它停止将扫描的条形码(来自 Barcode Scanner)放入 TextInput(因为现在不会请求系统键盘) .

我想要什么,隐藏键盘,但它仍然与焦点 TextInput 绑定,以访问来自条形码扫描仪的输入。我被困在这里,任何帮助将不胜感激。

我正在使用:kivy==2.0.0、python==3.7.9 和 buildozer 为 android 打包应用程序。

【问题讨论】:

    标签: android python-3.x kivy kivy-language


    【解决方案1】:

    我有一些想法,但我首先要仔细检查您是否将Config.set('kivy', 'keyboard_mode', 'system') 语句放在正确的位置。

    这需要出现在所有内容之前,即您的 main.py 文件的前两行应如下所示:

    from kivy.config import Config
    
    Config.set('kivy', 'keyboard_mode', 'system')
    
    from kivy.app import App
    from kivy.core.window import Window
    
    # etc.
    

    之所以问这个,是因为在导入App之后写Config.set()没有效果。在您的计算机上,我相信默认的keyboard_mode'',这只是为了选择最佳选项,巧合的是system。这会给人一种Config.set() 工作的错觉。

    【讨论】:

    • 嗨 jda5,是的,配置被设置在主文件的顶部。但它在 Windows 上运行良好,我在 android 上遇到问题。
    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 2020-05-28
    • 2015-01-04
    • 2021-06-08
    • 2020-09-13
    • 2017-02-16
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多