我在ScreenManager中有兩個屏幕,兩個屏幕都包含ScrollView中的多個按鈕。這個想法是通過點擊一個按鈕向前(右)。然後往後退(左)。所以我試圖添加一個Carousel來實現第二頁上的那個滑動。這是我所嘗試過的:Kivy:滑動(旋轉木馬和屏幕管理器)
self.root = ScreenManager(id = 'screen_manager')
main_screen = Screen(name = 'main_screen')
scroller = Scroller()
button_text = ['teach', 'move', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8']
for text in button_text:
scroller.view.add_widget(Field(name=text, direction='left', current='teach'))
main_screen.add_widget(scroller)
self.root.add_widget(main_screen)
carousel = Carousel(direction='left', id='carousel')
teach = Screen(name = 'teach')
scroller2 = Scroller()
button_text = ['vocab', 'drills']
for text in button_text:
scroller2.view.add_widget(Field(name=text, direction='right', current='main_screen'))
carousel.add_widget(scroller2)
teach.add_widget(carousel)
self.root.add_widget(teach)
但是因爲我只添加了第二個屏幕,所以無法在任一方向上滑動。傳送帶的load_slide()
方法以幻燈片作爲參數。假設他們是幻燈片,意味着一個旋轉木馬。鑑於我將有很多頁面,我可能需要動態加載Carousel,使用add_widget()
和remove_widget()
。會欣賞一些指針。代碼
工作的例子,我到目前爲止有:http://dpaste.com/33464R2
我去了源代碼,看到這個屬性'min_move'爲**旋轉木馬**如果將此設置爲'min_move = 1',則在滑動時不會更改該屏幕。也許這可以爲你工作。這裏是:https://github.com/kivy/kivy/blob/master/kivy/uix/carousel.py – kiok46
謝謝,我可以使用它。無法讓Carousel添加多個屏幕。 –
發現本教程,可能會有所幫助,並給你一些其他的想法:) http://davideddu.org/blog/posts/kivy-back-btn-navigation/ – kiok46