我正在尝试在一个ScrollView屏幕中使用多个MDSwiper,但是MDSwiper when swipe事件被触发(图像大小应该调整)的动画不起作用,我也不知道为什么。在ScrollView之外,它可以正常工作。
main.py
from kivymd.app import MDApp
from kivy.lang import Builder
from kivymd.uix.screen import MDScreen
from kivymd.uix.boxlayout import MDBoxLayout
class MainScreen(MDScreen):
pass
class MDNavigationLayout(MDBoxLayout):
pass
class ContentNavigationDrawer(MDBoxLayout):
pass
class TestApp(MDApp):
def build(self):
self.title = 'TestApp'
view = Builder.load_file('main.kv')
return view
if __name__ == '__main__':
TestApp().run()main.kv
<ContentNavigationDrawer>:
orientation: 'vertical'
padding: '8dp'
spacing: '8dp'
MDLabel:
text: 'Title'
font_style: 'Caption'
size_hint_y: None
height: self.texture_size[1]
ScrollView:
MDList:
OneLineIconListItem:
text: 'Item 1'
on_press:
root.nav_drawer.set_state('close')
IconLeftWidget:
icon: 'account'
<SwiperItem1@MDSwiperItem>:
RelativeLayout:
FitImage:
source: 'image.jpg'
radius: [20,]
MDBoxLayout:
adaptive_height: True
spacing: '12dp'
MDLabel:
text: 'Image1'
font_style: 'H5'
size_hint_y: None
height: self.texture_size[1]
pos_hint: {'center_y': .5}
opposite_colors: True
MDNavigationLayout:
scrm: scrm
ScreenManager:
id: scrm
main_screen: main_screen
MainScreen:
scrm: scrm
nav_drawer: nav_drawer
id: main_screen
MDNavigationDrawer:
id: nav_drawer
md_bg_color: 1, 1, 1, .4
ContentNavigationDrawer:
scrm: scrm
nav_drawer: nav_drawer
<MainScreen>:
MDBoxLayout:
orientation: 'vertical'
size_hint: 1, 1
ScrollView:
MDList:
size_hint_y: .8
padding: '10dp'
spacing: '10dp'
MDSwiper:
id: swiper_1
size_hint_y: None
height: 260
SwiperItem1:
SwiperItem1:
SwiperItem1:
MDSwiper:
id: swiper_2
size_hint_y: None
height: 260
SwiperItem1:
SwiperItem1:
SwiperItem1:
MDSwiper:
id: swiper_3
size_hint_y: None
height: 260
SwiperItem1:
SwiperItem1:
SwiperItem1:我需要一些建议(也许是一个kivymd bug,idk ),谢谢!
发布于 2021-10-11 07:22:28
您不应该在ScrollView小部件中放置可滚动的小部件。Kivy有个窃听器无法在垂直ScrollView中滚动水平内容。
https://stackoverflow.com/questions/69518941
复制相似问题