我正在学习编写我的第一个kivy应用程序。我想实现UI一种Android手机通话应用程序,就是它在屏幕下方有几个按钮,当按下按钮时,上面的屏幕会改为相应的内容(也许是一个记录列表,或经典设置屏幕。)
我认为我可能需要两个用于按钮组和上述内容的自定义容器小部件,并且内容小部件可能需要动态删除所有子小部件并为按钮on_press事件添加相应的新子小部件。我不确定这里的想法是否合适,或者使用kivy有这种类型的经典Android应用程序的现成解决方案吗?
答案 0 :(得分:2)
我想你要求ScreenManager。 Kivy提供了一个很好的例子,但这是另一个例子。我认为它与您正在寻找的更相似:
来自kivy.app import App 来自kivy.lang import Builder 来自kivy.uix.floatlayout导入FloatLayout
Builder.load_string("""
<Phone>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
ScreenManager:
size_hint: 1, .9
id: _screen_manager
Screen:
name: 'screen1'
Label:
text: 'The first screen'
Screen:
name: 'screen2'
Label:
text: 'The second screen'
AnchorLayout:
anchor_x: 'center'
anchor_y: 'bottom'
BoxLayout:
orientation: 'horizontal'
size_hint: 1, .1
Button:
text: 'Go to Screen 1'
on_press: _screen_manager.current = 'screen1'
Button:
text: 'Go to Screen 2'
on_press: _screen_manager.current = 'screen2'""")
class Phone(FloatLayout):
pass
class TestApp(App):
def build(self):
return Phone()
if __name__ == '__main__':
TestApp().run()