Skip to content

Commit 19576d4

Browse files
committed
day 2 progress
1 parent 20f7a0b commit 19576d4

File tree

5 files changed

+294
-113
lines changed

5 files changed

+294
-113
lines changed

examples/search.py

+28-8
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,38 @@
99
MDScreen:
1010
md_bg_color:app.theme_cls.backgroundColor
1111
BoxLayout:
12-
padding:[dp(10), dp(10)]
12+
padding:[dp(10), dp(50)]
1313
orientation:"vertical"
1414
1515
MDSearchBar:
16-
id:bar
16+
id: search_bar
1717
supporting_text: "Search in text"
18-
# if you want it to be of fixed size
19-
# adaptive_width:True
20-
MDSearchTrailingIcon:
21-
icon:"microphone"
22-
MDSearchTrailingAvatar:
23-
source:f"{images_path}/logo/kivymd-icon-128.png"
18+
view_root: root
19+
20+
# Search Bar
21+
MDSearchBarLeadingContainer:
22+
MDSearchLeadingIcon:
23+
icon:"magnify"
24+
25+
MDSearchBarTrailingContainer:
26+
MDSearchTrailingIcon:
27+
icon:"microphone"
28+
MDSearchTrailingAvatar:
29+
source:f"{images_path}/logo/kivymd-icon-128.png"
30+
31+
# Search View
32+
MDSearchViewLeadingContainer:
33+
MDSearchLeadingIcon:
34+
icon:"arrow-left"
35+
on_release: search_bar.close_view()
36+
37+
MDSearchViewTrailingContainer:
38+
MDSearchTrailingIcon:
39+
icon:"window-close"
40+
41+
MDSearchViewContainer:
42+
MDLabel:
43+
text:"Hello World!"
2444
2545
Widget:
2646
MDSwitch:

kivymd/factory_registers.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@
133133
register("MDHeroFrom", module="kivymd.uix.hero")
134134
register("MDHeroTo", module="kivymd.uix.hero")
135135
register("MDSearchBar", module="kivymd.uix.search")
136-
register("MDSearchView", module="kivymd.uix.search")
137136
register("MDSearchTrailingAvatar", module="kivymd.uix.search")
138137
register("MDSearchTrailingIcon", module="kivymd.uix.search")
138+
register("MDSearchLeadingIcon", module="kivymd.uix.search")
139+
register("MDSearchViewContainer", module="kivymd.uix.search")
140+
register("MDSearchBarLeadingContainer", module="kivymd.uix.search")
141+
register("MDSearchBarTrailingContainer", module="kivymd.uix.search")
142+
register("MDSearchViewLeadingContainer", module="kivymd.uix.search")
143+
register("MDSearchViewTrailingContainer", module="kivymd.uix.search")

kivymd/uix/search/__init__.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
from .search import (
2-
MDSearchBar,
3-
MDSearchTrailingAvatar,
4-
MDSearchTrailingIcon,
5-
MDSearchView,
6-
)
1+
from .search import *

kivymd/uix/search/search.kv

+59-62
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,73 @@
1-
#: import images_path kivymd.images_path
2-
31
<MDSearchTrailingAvatar>:
42
size_hint_x: None
53
width: dp(30)
64

75
<MDSearchTrailingIcon>:
86
size_hint: [None, 1]
97
width: dp(24)
10-
theme_icon_color: "Custom"
118
icon_color: app.theme_cls.onSurfaceColor
129

13-
<MDSearchView>:
14-
overlay_color: [0] * 4
15-
background: f"{images_path}/transparent.png"
16-
boder: [0] * 4
17-
_anim_duration: 0
18-
FloatLayout
19-
MDBoxLayout:
20-
id: root_container
21-
orientation: 'vertical'
22-
md_bg_color: app.theme_cls.surfaceContainerHighColor
23-
adaptive_height: True
24-
size_hint_x: None
25-
canvas:
26-
Color:
27-
rgba: app.theme_cls.outlineColor
28-
Line:
29-
points:
30-
[[self.x,self.y-root._header_height+self.height],
31-
[self.x+self.width, self.y-root._header_height+self.height]]
32-
BoxLayout:
33-
size_hint_y: None
34-
height: root._header_height
35-
spacing: dp(16)
36-
padding: [dp(16), 0]
37-
MDIconButton:
38-
icon: "arrow-left"
39-
size_hint: [None, 1]
40-
width: dp(24)
41-
on_release: root.close_view()
42-
theme_icon_color: "Custom"
43-
icon_color: app.theme_cls.onSurfaceColor
10+
<MDSearchLeadingIcon>:
11+
size_hint: [None, 1]
12+
width: dp(24)
13+
icon_color: app.theme_cls.onSurfaceColor
4414

45-
BoxLayout:
46-
size_hint: [None, None]
47-
size:[ dp(360), dp(240)]
15+
<MDSearchBarTrailingContainer>:
16+
size_hint_x: None
17+
width: self.minimum_width
18+
spacing: dp(16)
19+
20+
<MDSearchBarLeadingContainer>:
21+
size_hint_x: None
22+
width: self.minimum_width
23+
spacing: dp(16)
4824

25+
<MDSearchViewTrailingContainer>:
26+
size_hint_x: None
27+
width: self.minimum_width
28+
spacing: dp(16)
29+
30+
<MDSearchViewLeadingContainer>:
31+
size_hint_x: None
32+
width: self.minimum_width
33+
spacing: dp(16)
34+
35+
<MDSearchViewContainer>:
36+
size_hint_y:None
37+
height:dp(55)
38+
canvas:
39+
Color:
40+
rgba: app.theme_cls.outlineColor
41+
Line:
42+
points:
43+
[[self.x,self.y+self.height],
44+
[self.x+self.width, self.y+self.height]]
45+
46+
<MDSearchWidget>:
47+
MDBoxLayout:
48+
id: root_container
49+
orientation: 'vertical'
50+
md_bg_color: app.theme_cls.surfaceContainerHighColor
51+
size_hint: [None, None]
52+
orientation: 'vertical'
53+
# header
54+
BoxLayout:
55+
id: header
56+
padding: [dp(16), 0]
57+
spacing: dp(16)
58+
size_hint_y: None
59+
height: dp(56)
60+
TextInput:
61+
id: text_input
62+
background_color:[0,0,0,0]
63+
foreground_color: app.theme_cls.onSurfaceColor
64+
cursor_color:app.theme_cls.outlineColor
65+
hint_text_color: app.theme_cls.onSurfaceVariantColor
66+
padding: [0, (self.parent.height - self.font_size - dp(3)) / 2]
67+
multiline: False
68+
font_size: root._font_style["font-size"]
69+
on_focus: if args[-1]: root.switch_state("open")
70+
Widget:
4971
<MDSearchBar>:
5072
size_hint_y: None
5173
height: dp(56)
52-
md_bg_color: app.theme_cls.surfaceContainerHighColor
53-
radius: dp(28)
54-
spacing: dp(16)
55-
padding: [dp(16), 0]
56-
adaptive_width: False
57-
on_release: self._search_view.open_view()
58-
MDIconButton:
59-
icon: root.leading_icon
60-
size_hint: [None, 1]
61-
width: dp(24)
62-
on_release: root.on_leading_icon_release()
63-
on_press: root.on_leading_icon_press()
64-
theme_icon_color: "Custom"
65-
icon_color: app.theme_cls.onSurfaceColor
66-
MDLabel:
67-
text: root.supporting_text
68-
theme_text_color: "Custom"
69-
text_color: app.theme_cls.onSurfaceVariantColor
70-
theme_font_size: "Custom"
71-
font_style: "Title"
72-
role: "medium"
73-
size_hint_x: None
74-
padding: root._supporting_text_padding if root.adaptive_width else 0
75-
adaptive_width:root.adaptive_width
76-
size_hint_x: 1 if not root.adaptive_width else None

0 commit comments

Comments
 (0)