我可以使用什么样的kivy小部件来实现像UI这样的Android手机应用程序?

时间:2013-07-01 09:11:38

标签: kivy

我正在学习编写我的第一个kivy应用程序。我想实现UI一种Android手机通话应用程序,就是它在屏幕下方有几个按钮,当按下按钮时,上面的屏幕会改为相应的内容(也许是一个记录列表,或经典设置屏幕。)

我认为我可能需要两个用于按钮组和上述内容的自定义容器小部件,并且内容小部件可能需要动态删除所有子小部件并为按钮on_press事件添加相应的新子小部件。我不确定这里的想法是否合适,或者使用kivy有这种类型的经典Android应用程序的现成解决方案吗?

1 个答案:

答案 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()