2013-07-01 4 views
0

Я учусь писать свое первое приложение для kivy. Я бы хотел, чтобы пользовательский интерфейс был своего рода андроидным телефонным вызовом, то есть он имеет несколько кнопок внизу экрана, а при нажатии кнопки указанный выше экран будет меняться на соответствующее содержимое (возможно, список записей , или экран классических настроек).Какие виджеты kivy можно использовать для реализации приложения Android-телефона, такого как пользовательский интерфейс?

Я думаю, мне может понадобиться два настраиваемых виджета контейнера для групп кнопок и вышеуказанного содержимого, а виджету содержимого может потребоваться динамическое удаление всех дочерних виджетов и добавление соответствующих дочерних виджетов для кнопки on_press. Я не уверен, подходит ли эта идея, или есть готовое решение для этого типа классического приложения для Android с помощью киви?

ответ

2

Я думаю, что вы просите ScreenManager. Kivy - хороший пример, но вот еще один пример. Я думаю, что это больше похоже на то, что вы ищете:

от импорта kivy.app App из kivy.lang импорта 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() 
+0

Благодаря toto_tico, это очень аналогично тому, что я хотел, однако я хотел бы оставить кнопки неизменными, изменяя приведенные выше экраны содержимого on_press. В любом случае, я думаю, ScreenManager должен быть выбором, спасибо снова. – benhengx

+0

Конечно. «ScreenManager» является «виджетами» и может идти туда, куда вы хотите. Я изменил код, так что теперь вы получили то, что хотели. Я не понял этот вопрос в первый раз очень хорошо, извините. Если вы думаете, что теперь ответ на ваш вопрос, пожалуйста, отметьте это. [StackOverflow About] (http://stackoverflow.com/about) –

+0

Да, это именно то, что я хочу, правильный ответ. – benhengx