屏幕内的小部件(按钮、输入文本等)无法正常工作

Widgets ( button , inputtext etc. ) inside screen is not working

我想在屏幕内放置一些文本框和按钮,但似乎不起作用。代码中有任何建议或问题吗?当 运行 main.py 文本输入和第一个按钮和标签不存在时

Phone.kv

<Phone>:
    orientation: 'vertical'
    ScreenManager:
        size_hint: 1, 1
        id: _screen_manager
        Screen:
            name: 'screen1'
            Label:
                markup: True
                text: 'manish'
            TextInput:
                text: 'Hi Kivy'
            Button:
                text: 'Go to Screen 1'
                on_press:
                    _screen_manager.current = 'screen1'
            Button:
                text: 'Go to Screen 2'
                on_press:
                    root.login()
                    _screen_manager.current = 'screen2'

        Screen:
            name: 'screen2'
            GridLayout:
                cols: 3
                padding: 50
                Button:
                    text: "1"

main.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
import time

class Phone(FloatLayout):
    def login(self):
        print "before"
        time.sleep(2)
        print "after"

class PhoneApp(App):
    def build(self):
        return Phone()

if __name__ == '__main__':
    PhoneApp().run()

一切可能都在那里,只是彼此重叠,因为 Screen 默认放置其子项以填充自身。

尝试类似下面的方法,它使用应该将其子项放置在不同位置的框布局。

屏幕: 姓名:'screen1' 盒子布局: 方向:'vertical' 标签: 标记:正确 文字:'manish' 文本输入: 文本:'Hi Kivy' 按钮: 文本:'Go to Screen 1' on_press: _screen_manager.current = 'screen1' 按钮: 文本:'Go to Screen 2' on_press: root.login() _screen_manager.current = 'screen2'