使用 kivy textinput 的 'input_type' 属性的问题

Posted

技术标签:

【中文标题】使用 kivy textinput 的 \'input_type\' 属性的问题【英文标题】:Issue using kivy textinput's 'input_type' property使用 kivy textinput 的 'input_type' 属性的问题 【发布时间】:2016-08-27 15:04:47 【问题描述】:

您好,我在使用 kivy 的 textinput 小部件的 input_type 属性时遇到问题。问题是我做了两个自定义文本输入,一个称为 StrText,我在其中设置 input_type = 'text'。然后是第二个名为 NumText 的文本输入,input_type = 'number'。 我使用 kivy 启动器在我的手机上对此进行了测试,并注意到一旦我点击 NumText 输入并带来一个数字键盘,如果我点击 StrText,它会带来相同的数字键盘而不是普通的文本键盘。如果你稍微玩一下,你会发现大部分时间都会返回数字键盘。 请问我的代码有问题吗,或者我该如何解决? 你会在下面找到我的代码

main.py

from kivy.app import App
from kivy.uix.bubble import Bubble
from kivy.core.window import Window

class  BubbleApp(App):
    pass

if __name__ == '__main__':
    Window.fullscreen = False
    BubbleApp().run()

bubble.kv

GridLayout:
    cols: 1
    StrText:
        height: '48dp'
        size_hint_y: None

    Label:
        text: 'Number keyboard below'
        height: '48dp'
        size_hint_y: None
        multiline: False
        font_size: self.height * .5

    NumText:
        height: '48dp'
        size_hint_y: None


<StrText@TextInput>:
    input_type: 'text'
    multiline: False
    font_size: self.height * .5

<NumText@TextInput>:
    input_type: 'number'
    input_filter: 'int'
    multiline: False
    font_size: self.height *.5

【问题讨论】:

您使用什么类型的键盘?默认android、samsung、一些自定义? 触宝 2015 如果可以,请尝试将其更改为默认键盘。 刚刚做了。而且效果很好。 现在您知道它为什么不起作用了——问题出在自定义键盘上。很久以前有同样的问题:-/ 【参考方案1】:

最近我在使用 Kivy1.10.0 构建我的应用程序时遇到了类似的问题。我在 android 中使用了默认的键盘应用程序,但它仍然不断地从 Numeric Keypad 变为 Text Keypad

这次我尝试使用 kivy==1.9.1 和 Cython==0.23.1 和 buildozer==0.32 来构建 .apk,它对我有用。

注意:

我建议创建一个 virtualenv 来安装上面的特定包并使用它来创建 .apk 文件。

virtualenv build32env
source build32env/bin/activate
pip install buildozer==0.32 Cython==0.23.1

执行buildozer init 后,确保更改buildozer.spec 文件:

来自

requirements = kivy

requirements = kivy==1.9.1

否则它将使用最新的 kivy 版本来构建 .apk 文件。

More details about buildozer

希望对他人有所帮助!

【讨论】:

以上是关于使用 kivy textinput 的 'input_type' 属性的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用kivy将textinput转换为float并返回

将 kivy 的 TextInput 限制为仅 ascii 字符

Python kivy - 如何减少 TextInput 的高度

Kivy Textinput 未在 Windows 上检测到物理键盘

使 Kivy TextInput 框架不可见但显示文本

Kivy:如何在 kivy 中制作圆角 TextInput?