рдирдорд╕реНрддреЗ! рдЖрдЬ рд╣рдо рдлрд┐рд░ рд╕реЗ
KivyMD рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - рд╕рд╛рдордЧреНрд░реА рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рд╢реИрд▓реА рдореЗрдВ рдкрд╛рдпрдерди рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ KivyMD рд╡рд┐рдЬреЗрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐
рд╣рд╛рд▓рд┐рдпрд╛ рд▓реЗрдЦ рдореЗрдВ рд╣реИ , рдмрд▓реНрдХрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реЛрдЧреАред рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЬреИрд╕рд╛ рдХреБрдЫ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдХреАрд╡реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдм рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдЦреИрд░, рд╣рдордиреЗ рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдИ!
рджреВрд╕рд░реЗ рджрд┐рди рдореИрдВрдиреЗ Google Play рд╕реЗ Flutter UIKit рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛:
рдФрд░ рдЕрдм рд╣рдо рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдПрдХ рд╕реНрдХреНрд░реАрди рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЖрдЗрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рддреБрд░рдВрдд рджреЗрдЦреЗрдВ: рдмрд╛рдИрдВ рдУрд░ рд╕реНрдкрдВрджрди, рджрд╛рдИрдВ рдУрд░ рдХреАрд╡реА рдФрд░ рдХрд┐рд╡реАрдПрдордбреАрдПрдоред
UI рдХреЗ рдХреБрдЫ рддрддреНрд╡ рдЕрд▓рдЧ рд╣реИрдВ, рдХреБрдЫ рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдмрдирд┐рдХ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреНрд▓реИрдХ рдЯреВрд▓рдмрд╛рд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ)ред
рддреЛ! рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЦреЗрд▓реЗрдВрдЧреЗ? рдкрд╛рд░рджрд░реНрд╢реА рдкреГрд╖реНрдарднреВрдорд┐ рд╕рд╛рдордиреЗ рд▓реЗрдЖрдЙрдЯред рдХрд┐рд╡реА рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдлреНрд▓реЛрдЯрд▓реИрдЯрдЖрдЙрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рдЬреЗрдЯ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЕрдВрджрд░ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░реАрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
рдЗрд╕ рд╕реНрдХреНрд░реАрди рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
рдЕрдЧрд░ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░реАрди рд╕реНрдХреНрд░реАрди рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИ, рддреЛ рдореИрдВ рдлреНрд▓реЛрдЯрд▓реИрдЯрдЖрдЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?
<ProductScreen@Screen>: ...
рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╕реНрдХреНрд░реАрди -> рд░рд┐рд▓реЗрдЯрд┐рд╡рд▓реЗрдпреВрдЯ -> рдлреНрд▓реЛрдЯрд▓реИрдЯрдЖрдЙрдЯред
рдлреНрд▓реЛрдЯрд▓реИрдЯрдЖрдЙрдЯ рдореЗрдВ рд╕рднреА рд╡рд┐рдЬреЗрдЯ рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рд╕реЗ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд┐рддрд┐ (0, 0) рд╕реМрдВрдкреА рдЬрд╛рддреА рд╣реИред рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ, рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рд╕реНрдХреНрд░реАрди рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХреНрд░рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ:
рдпрджрд┐ рдХрд┐рд╕реА рдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рддреЛ рд╣рдордиреЗ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛:
MDToolbar: ... pos_hint: {"top": 1}
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (x, y) рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╡реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
pos_hint: {"top": 1}
рддреЛ, рдиреАрдЪреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╡рд┐ ...
BoxLayout: size_hint_y: None height: root.height - toolbar.height FitImage: source: "smokestackheather.jpeg"
... FitImage рд╡рд┐рдЬреЗрдЯ (KivyMD рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЫрд╡рд┐ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕рднреА рд╕реНрдерд╛рди рддрдХ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╡реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреЛ 100% рд╕реНрдерд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЕрдиреНрдпрдерд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ:
from kivy.app import App from kivy.lang import Builder KV = """ Button: text: "Button" """ class MyApp(App): def build(self): return Builder.load_string(KV) MyApp().run()
рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдмрдЯрди рдиреЗ 100% рдЬрдЧрд╣ рд▓реЗ рд▓реАред рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдПрдХ рдмрдЯрди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛:
from kivy.app import App from kivy.lang import Builder KV = """ Button: text: "Button" size_hint: None, None size: 100, 50 pos_hint: {"center_y": .5, "center_x": .5} """ class MyApp(App): def build(self): return Builder.load_string(KV) MyApp().run()
рдЕрдм рддрд╕реНрд╡реАрд░ рдмрджрд▓ рдЧрдИ рд╣реИ:
рдЖрдк 0 рд╕реЗ 1, (0-100% рдХреЗ рдмрд░рд╛рдмрд░) рд╕реЗ
size_hint рд╕рдВрдкрддреНрддрд┐ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,
рдЕрд░реНрдерд╛рдд рдЖрдХрд╛рд░ h from kivy.app import App from kivy.lang import Builder KV = """ BoxLayout: Button: text: "Button" size_hint_y: .2 Button: text: "Button" size_hint_y: .1 Button: text: "Button" """ class MyApp(App): def build(self): return Builder.load_string(KV) MyApp().run()
рдпрд╛ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЪреМрдбрд╝рд╛рдИ рд╕рдВрдХреЗрдд (
size_hint_x ):
from kivy.app import App from kivy.lang import Builder KV = """ BoxLayout: Button: text: "Button" size_hint_x: .2 Button: text: "Button" size_hint_x: .1 Button: text: "Button" """ class MyApp(App): def build(self): return Builder.load_string(KV) MyApp().run()
MDToolbar рдХреА рдКрдВрдЪрд╛рдИ 56dp рд╣реИ, рд╕рднреА рд╕реНрдерд╛рди рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рд╕реНрдерд╛рди рд╢реАрд░реНрд╖ рдкрд░ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЪрд┐рдкрдХ рдЬрд╛рдПрдЧрд╛:

рдХрд╛рд░реНрдб рдХреА рд╕реВрдЪреА, OrderProductLayout (рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ), MDCard рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреА рдкреВрд░реА рдКрдВрдЪрд╛рдИ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдкреИрдбрд┐рдВрдЧ (рдЪрдврд╝рд╛рд╡ рдореЗрдВ рдЗрдВрдбреЗрдВрдЯ рд╡реИрд▓реНрдпреВ) рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рд╕реЗ рдереЛрдбрд╝рд╛ рдКрдкрд░ рд╕реНрдерд┐рдд рд╣реИред рдареАрдХ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ MDBottomAppBar рд╕реНрдХреНрд░реАрди рдХреА рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рдкрд░ рд▓рдВрдЧрд░ рдЫреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рдПрдордбреАрдЯреВрд▓рдмрд╛рд░ рд╣рдордиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдЗрд╕рдХреА рдЬрдЧрд╣ рдХрд╣рд╛рдВ рд╣реИред
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ OrderProductLayout рд╡рд┐рдЬреЗрдЯ рдХреНрдпрд╛ рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рдЪрд╛рд░ рдХрд╛рд░реНрдбреНрд╕ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдХреНрд░рд┐рд▓ рд╡реНрдпреВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореВрд▓ рд╕реНрдХреНрд░реАрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдХрд┐ рдлреНрд▓реЛрдЯрд▓реИрдпреВрдЯ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╕рднреА рд╡рд┐рдЧреЗрдЯреНрд╕ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯреНрд╕, рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕реНрдкрд╖реНрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реИ, рдФрд░ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рдЬреЗрдЯ / рдирд┐рдпрдВрддреНрд░рдг рдХрд┐рд╕ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХрд┐рд╡реА рдореЗрдВ, рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд▓реЗрдЖрдЙрдЯ BoxLayout рд╣реИ - рдПрдХ рдмреЙрдХреНрд╕ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рдпрд╛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ - рдЕрдВрддрд┐рдо рдПрдХ):

рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реЗрдЦ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ BoxLayout рдХреНрд╖реИрддрд┐рдЬ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╣рдордиреЗ BoxLayout рдХреЛ 100% рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд┐рдпрд╛ -
size_hint_y: рдХреЛрдИ рдирд╣реАрдВ рдФрд░ рдХрд╣рд╛ - рдЖрдкрдХреА рдКрдБрдЪрд╛рдИ рдареАрдХ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА рдЬреИрд╕реЗ рдХрд┐ рдЙрдЪреНрдЪрддрдо рддрддреНрд╡ рдХреА
рдКрдВрдЪрд╛рдИ рдЖрдк рдореЗрдВ
рдирд┐рд╣рд┐рдд рд╣реИ -
рдКрдБрдЪрд╛рдИ: self.minimum_height ред
рдЫрд╡рд┐ рд╕реВрдЪреА:
рдпрджрд┐ рд╣рдо рд╕реВрдЪреА рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЧреНрд░рд┐рдбрд▓рд╛рдЗрдЙрдЯ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
ScrollView: GridLayout: size_hint_y: None height: self.minimum_height cols: 1
рдкрдВрдХреНрддрд┐рдпреЛрдВ (рдХреЙрд▓рдо) рдХреЛ рдХреЙрд▓рдо (
рдХреЙрд▓ ) рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ рдФрд░
рдиреНрдпреВрдирддрдо рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдКрдВрдЪрд╛рдИ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ:
from kivy.app import App from kivy.lang import Builder from kivy.metrics import dp from kivy.uix.button import Button KV = """ ScrollView: GridLayout: id: box size_hint_y: None height: self.minimum_height spacing: "5dp" cols: 1 """ class MyApp(App): def build(self): return Builder.load_string(KV) def on_start(self): for i in range(20): self.root.ids.box.add_widget( Button( text=f"Label {i}", size_hint_y=None, height=dp(40), ) ) MyApp().run()
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдб рд░рдВрдЧ рдФрд░ рдЖрдХрд╛рд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ (рд╡реЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ):
рдХреЗрд╡реА рднрд╛рд╖рд╛ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рди рдХреЗрд╡рд▓ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рд╕реНрдкрд╖реНрдЯ рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рддрдереНрдп рд╣реИ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдЕрд░реНрдерд╛рддреН: рдлреЛрди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рдЪрд░ / рд▓реЙрдЬрд┐рдХрд▓, рдЖрдИ / рдУ рдФрд░ рдЧрдгрд┐рддреАрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ / рдмрджрд▓рдирд╛ ...
рд▓реЗрдмрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд
рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ ...
Label: value: 0 text: str(self.value)
... рд╕реАрдзреЗ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:
MDIconButton: on_release: label_value.value -= 1 if label_value.value > 0 else 0
рдФрд░ рдореБрдЭреЗ рдХрднреА рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ (рд╕реНрдкрдВрджрди рдХреЛрдб) ...
... рдХреЗрд╡реА рднрд╛рд╖рд╛ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдкрдардиреАрдп:
рдХрд▓ рдореБрдЭреЗ рдкреВрдЫрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХрд┐рд╡реА рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рд╡рд╣рд╛рдБ рдСрдЯреЛреЛрдХрдореНрдкреНрд▓рд┐рдЯреНрд╕, рд╣реЙрдЯрд▓реЛрдбреНрд╕ рдФрд░ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╣реИрдВ? рдСрдЯреЛрдХреЙрдордкреНрд▓рд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде, рдЕрдЧрд░ рдЖрдк PyCharm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ:

рд╣реЙрдЯрд▓реЛрдб рдХреЗ рд▓рд┐рдП ... рдкрд╛рдпрдерди рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рднрд╛рд╖рд╛ рд╣реИред рдХреАрд╡реА рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ - рджреЗрдЦреЗрдВ / рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдХрд┐рд╡реА рдпреВрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЛ
рд╕реНрдХреНрд░реАрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд┐рдВрдбреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЦреБрд▓ рдЬрд╛рдП рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛред рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдБрдХрд┐ рдпреВрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдордВрдЪ рд╕реЗ рдХреАрд╡реА рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯреНрд╕, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рднрд╛рд░реА рдФрд░ рдзреАрдореА emulators рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ UI рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ
-m рд╕реНрдХреНрд░реАрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
: droid2, рдкреЛрд░реНрдЯреНрд░реЗрдЯ, рд╕реНрдХреЗрд▓ = 75 ред
рдмрд╛рдИрдВ рдУрд░ - рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, рджрд╛рдИрдВ рдУрд░ - рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:
рд╕реНрдХреНрд░реАрди рдореЙрдбреНрдпреВрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА: рдЦреИрд░, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓реЙрдиреНрдЪ рд╣реИ ...
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд▓реЙрдиреНрдЪ рдЧрддрд┐ рд╣реИред рдЙрд╕реА рд╕реНрдкрдВрджрди рдкрд░ рд╡рд╣ рдмрд╕ рдЕрднреВрддрдкреВрд░реНрд╡ рд╣реИ!
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛, рдЬрд▓реНрдж рд╣реА рдорд┐рд▓рддреЗ рд╣реИрдВ!