Skip to content

Commit 43676d1

Browse files
authored
ListView.reverse and GridView.reverse props (#2335)
* ScrollableControl.reverse * ListView.reverse * GridView.reverse
1 parent 31ef1bf commit 43676d1

File tree

5 files changed

+22
-2
lines changed

5 files changed

+22
-2
lines changed

package/lib/src/controls/grid_view.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class _GridViewControlState extends State<GridViewControl> {
5656
final runSpacing = widget.control.attrDouble("runSpacing", 10)!;
5757
final padding = parseEdgeInsets(widget.control, "padding");
5858
final childAspectRatio = widget.control.attrDouble("childAspectRatio", 1)!;
59+
final reverse = widget.control.attrBool("reverse", false)!;
5960

6061
List<Control> visibleControls =
6162
widget.children.where((c) => c.isVisible).toList();
@@ -84,6 +85,7 @@ class _GridViewControlState extends State<GridViewControl> {
8485
Widget child = GridView.builder(
8586
scrollDirection: horizontal ? Axis.horizontal : Axis.vertical,
8687
controller: _controller,
88+
reverse: reverse,
8789
shrinkWrap: shrinkWrap,
8890
padding: padding,
8991
gridDelegate: gridDelegate,

package/lib/src/controls/list_view.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class _ListViewControlState extends State<ListViewControl> {
5656
final firstItemPrototype =
5757
widget.control.attrBool("firstItemPrototype", false)!;
5858
final padding = parseEdgeInsets(widget.control, "padding");
59+
final reverse = widget.control.attrBool("reverse", false)!;
5960

6061
List<Control> visibleControls =
6162
widget.children.where((c) => c.isVisible).toList();
@@ -72,6 +73,7 @@ class _ListViewControlState extends State<ListViewControl> {
7273
Widget child = spacing > 0
7374
? ListView.separated(
7475
controller: _controller,
76+
reverse: reverse,
7577
scrollDirection: horizontal ? Axis.horizontal : Axis.vertical,
7678
shrinkWrap: shrinkWrap,
7779
padding: padding,
@@ -94,6 +96,7 @@ class _ListViewControlState extends State<ListViewControl> {
9496
)
9597
: ListView.builder(
9698
controller: _controller,
99+
reverse: reverse,
97100
scrollDirection: horizontal ? Axis.horizontal : Axis.vertical,
98101
shrinkWrap: shrinkWrap,
99102
padding: padding,

sdk/python/packages/flet-core/src/flet_core/grid_view.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def __init__(
9393
# ScrollableControl specific
9494
#
9595
auto_scroll: Optional[bool] = None,
96+
reverse: Optional[bool] = None,
9697
on_scroll_interval: OptionalNumber = None,
9798
on_scroll: Any = None,
9899
#
@@ -138,6 +139,7 @@ def __init__(
138139
ScrollableControl.__init__(
139140
self,
140141
auto_scroll=auto_scroll,
142+
reverse=reverse,
141143
on_scroll_interval=on_scroll_interval,
142144
on_scroll=on_scroll,
143145
)

sdk/python/packages/flet-core/src/flet_core/list_view.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ def __init__(
8585
# ScrollableControl specific
8686
#
8787
auto_scroll: Optional[bool] = None,
88+
reverse: Optional[bool] = None,
8889
on_scroll_interval: OptionalNumber = None,
8990
on_scroll: Any = None,
9091
#
@@ -129,6 +130,7 @@ def __init__(
129130
ScrollableControl.__init__(
130131
self,
131132
auto_scroll=auto_scroll,
133+
reverse=reverse,
132134
on_scroll_interval=on_scroll_interval,
133135
on_scroll=on_scroll,
134136
)

sdk/python/packages/flet-core/src/flet_core/scrollable_control.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def __init__(
1414
self,
1515
scroll: Optional[ScrollMode] = None,
1616
auto_scroll: Optional[bool] = None,
17+
reverse: Optional[bool] = None,
1718
on_scroll_interval: OptionalNumber = None,
1819
on_scroll: Any = None,
1920
):
@@ -26,6 +27,7 @@ def convert_on_scroll_event_data(e):
2627

2728
self.scroll = scroll
2829
self.auto_scroll = auto_scroll
30+
self.reverse = reverse
2931
self.on_scroll_interval = on_scroll_interval
3032
self.on_scroll = on_scroll
3133

@@ -95,13 +97,22 @@ def __set_scroll(self, value: Optional[ScrollModeString]):
9597

9698
# auto_scroll
9799
@property
98-
def auto_scroll(self) -> Optional[bool]:
99-
return self._get_attr("autoScroll")
100+
def auto_scroll(self) -> Optional[str]:
101+
return self._get_attr("autoScroll", data_type="bool", def_value=False)
100102

101103
@auto_scroll.setter
102104
def auto_scroll(self, value: Optional[bool]):
103105
self._set_attr("autoScroll", value)
104106

107+
# reverse
108+
@property
109+
def reverse(self) -> Optional[bool]:
110+
return self._get_attr("reverse", data_type="bool", def_value=False)
111+
112+
@reverse.setter
113+
def reverse(self, value: Optional[bool]):
114+
self._set_attr("reverse", value)
115+
105116
# on_scroll_interval
106117
@property
107118
def on_scroll_interval(self) -> OptionalNumber:

0 commit comments

Comments
 (0)