Reputation: 265
My MDToolbar is covering the uppermost part of my label, I want the text of my label to appear below the toolbar also the pos_hint is not working on this I want to set the position of my text of label also I want to provide padding on left and right side here's my code in .kv file
<MainScreen>:
BoxLayout:
canvas:
Color:
rgb: 0, 0, 0, 0
Rectangle:
pos: root.pos
size: root.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…
"""
font_size: '20sp'
height: self.texture_size[1]
size: self.texture_size
text_size: root.width, None
size_hint_x: 1.0
size_hint_y: None
halign: "auto"
valign: "middle"
ScreenManager:
id: screen_manager
MainScreen:
name: 'main'
NavigationLayout:
ScreenManager:
Screen:
MDToolbar:
title: "Story"
anchor_title: 'left'
pos_hint: {"top": 1}
elevation: 10
left_action_items: [['menu', lambda x: nav_drawer.set_state()]]
MDNavigationDrawer:
title: 'Story A Day'
id: nav_drawer
swipe_distance: 10
ContentNavigationDrawer:
id: content_drawer
screen_manager: screen_manager
nav_drawer: nav_drawer
Upvotes: 2
Views: 822
Reputation: 39012
The problem is that your 'kv' file has two rules for building your MainScreen
, and both are being executed. You should combine the two rules into one, so that you can refer to different parts of the MainScreen
to help in positioning. As an example, adding an id
to the MDToolbar
allows positioning of the ScrollView
below it. Like this:
<MainScreen>:
BoxLayout:
canvas:
Color:
rgb: 0, 0, 0, 0
Rectangle:
pos: root.pos
size: root.size
ScreenManager:
id: screen_manager
MainScreen:
name: 'main'
NavigationLayout:
ScreenManager:
Screen:
MDToolbar:
id: toolbar # id for use below
title: "Story"
anchor_title: 'left'
pos_hint: {"top": 1}
elevation: 10
left_action_items: [['menu', lambda x: nav_drawer.set_state()]]
ScrollView:
# use toolbar id to position the ScrollView
pos_hint: {'top': 1.0 - toolbar.height / self.parent.height}
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.
.
.
.
Your kv
file is overly complicated for what it does. I haven't made any simplifications because you may have reasons for the way you are doing it.
Upvotes: 2