问题使用kivy textinput' input_type'属性

时间:2016-05-02 18:43:17

标签: python kivy

您好,我在使用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

1 个答案:

答案 0 :(得分:0)

最近,当我使用Kivy1.10.0构建应用程序时,我遇到了类似的问题。我在Android中使用了默认的键盘应用程序但仍然不断从数字键盘更改为文本键盘

这次我尝试使用Cython == 0.23.1 kivy == 1.9.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

希望它能帮助别人!