我有两个继承自屏幕的类。在主屏幕中,有一个导航抽屉,我想把我的屏幕换成另一个屏幕,但是当我尝试这样做的时候,它抛出了一个属性错误,说NoneType对象没有属性'transition',我已经尝试了所有的方法,下面是我的.kv文件的代码。
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
ScreenManager:
id: screens
FirstScreen:
Share:
AboutUs:
MDIconButton:
icon: 'close'
theme_text_color: "Custom"
text_color: app.theme_cls.primary_color
pos_hint: {"center_y": 0.97}
text_color: 1, 1, 1, 1
on_release:
screens.transition.direction = 'right'
screens.current = "main"
<ContentNavigationDrawer>:
background_color: 2, 3, 4, 5
orientation: "vertical"
padding: "8dp"
spacing: "8dp"
AnchorLayout:
anchor_x: "right"
size_hint_y: None
height: avatar.height
Image:
id: avatar
size_hint: None, None
size: "56dp", "56dp"
source: "data/logo/kivy-icon-256.png"
MDLabel:
anchor_y: 'left'
text: "[b]Story A Day[/b]"
theme_text_color: "Custom"
text_color: 0, 0, 0, 1
markup: True
font_style: "H4"
size_hint_y: None
height: self.texture_size[1]
MDLabel:
text: 'Story A Day'
font_style: "Button"
size_hint_y: None
height: self.texture_size[1]
ScrollView:
MDList:
MDExpansionPanelTwoLine:
text: 'send us your idea'
secondary_text: 'email: [email protected]'
IconLeftWidget:
icon: "email"
TwoLineAvatarListItem:
text: 'Send us'
secondary_text: 'to: [email protected]'
IconLeftWidget:
icon: "email"
OneLineAvatarListItem:
text: "About Us"
on_release:
root.nav_drawer.set_state("close")
root.screens.transition.direction = 'right'
root.screens.current = "screen1"
IconLeftWidget:
icon: "information"
on_release:
root.nav_drawer.set_state("close")
app.root.manager.transition = FadeTransition(duration=0.5)
app.root.manager.current = "screen1"
<AboutUs>:
name: 'screen1'
canvas:
Color:
rgba: 0, 0, 0, 1
Rectangle:
pos: self.pos
size: self.size
Label:
text_color: 255, 255, 255, 0
text: """[b]About Us [/b]"""
markup: True
font_size: '40sp'
text_size: None, None
size_hint: 1, 1.9
height: self.texture_size[1]
Label:
text_color: 255, 255, 255, 0
font_size: '18sp'
text_size: self.width, None
size_hint: 1, 1.5
height: self.texture_size[1]
halign: "center"
valign: "center"
text:
""" """
<Share>:
MDFloatingActionButtonSpeedDial:
data: root.data
icon: 'share-variant'
opening_time: 0.5
callback: root.callback # on pressing the call stack buttons
color_icon_root_button: 0, 0, 0, 1 # color of icon of button
color_icon_stack_button: 0, 0, 0, 1
hint_animation: True
rotation_root_button: False
<FirstScreen>:
name: 'main'
NavigationLayout:
id: nav_layout
ScreenManager:
id: screens
Screen:
MDToolbar:
id: toolbar
title: "Story"
anchor_title: 'left'
pos_hint: {"top": 1}
elevation: 10
left_action_items: [['menu', lambda x: nav_drawer.set_state()]]
BoxLayout:
size_hint: 1, None
height: root.height - toolbar.height
canvas:
Color:
rgba: 0, 0, 0, 1
Rectangle:
pos: self.pos
size: self.size
ScrollView:
Label:
text:
"""
A boy and a girl were playing together. The boy
had a collection of marbles. The girl has some
sweets with her. The boy told the girl that he
would give her all his marbles in exchange for the
sweets with her. The girl agreed.
The boy kept the most beautiful and the biggest
marbles with him and gave her the remaining marbles.
The girl gave him all her sweets as she promised.
That night the girl slept peacefully. But the boy
could not sleep as he kept wondering if the girl
has hidden some sweets from him the way he had
hidden the best marbles from her.
Moral of the Story :
If you do not give 100 percent in a relationship,
you will always kept doubting if the other person
has given her / his hundred percent. This is applicable
for any relationship like love, employee –
employer, friendship, family, countries, etc
and the most of the feelings we get now
days are just merely just the impact of the
surrounding now days we dont have a good
feeling that last long
and now we have to just name it in that way
If you do not give 100 percent in a relationship,
you will always kept doubting if the other person
has given her / his hundred percent. This is applicable
for any relationship like love, employee –
employer, friendship, family, countries, etc
and the most of the feelings we get now
days are just merely just the impact of the
surrounding now days we dont have a good
feeling that last long
and now we have to just name it in that way
If you do not give 100 percent in a relationship,
you will always kept doubting if the other person
has given her / his hundred percent. This is applicable
for any relationship like love, employee –
employer, friendship, family, countries, etc
and the most of the feelings we get now
days are just merely just the impact of the
surrounding now days we dont have a good
feeling that last long
and now we have to just name it in that way
"""
font_size: '20sp'
text_color: 255,255,255, 0
height: self.texture_size[1]
size: self.texture_size
text_size: root.width, None
size_hint_x: 1.0
size_hint_y: None
halign: "center"
valign: "middle"
MDNavigationDrawer:
title: 'Story A Day'
id: nav_drawer
swipe_distance: 10
ContentNavigationDrawer:
id: content_drawer
screens: app.root
nav_drawer: nav_drawer
只要在on_release里面写上app.root.screens.current就可以了。