Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-30 12:49:30 +08:00
parent 133f45945c
commit e892411092
27 changed files with 617 additions and 780 deletions

View File

@@ -1,8 +1,28 @@
diff --git a/packages/flutter/lib/src/material/navigation_drawer.dart b/packages/flutter/lib/src/material/navigation_drawer.dart
index 8a16764cb0c..6b8545c3781 100644
index 8a16764cb0c..031c2267d97 100644
--- a/packages/flutter/lib/src/material/navigation_drawer.dart
+++ b/packages/flutter/lib/src/material/navigation_drawer.dart
@@ -410,7 +410,7 @@ class _NavigationDestinationBuilder extends StatelessWidget {
@@ -67,8 +67,11 @@ class NavigationDrawer extends StatelessWidget {
this.onDestinationSelected,
this.selectedIndex = 0,
this.tilePadding = const EdgeInsets.symmetric(horizontal: 12.0),
+ this.flex = 1,
});
+ final int flex;
+
/// The background color of the [Material] that holds the [NavigationDrawer]'s
/// contents.
///
@@ -192,6 +195,7 @@ class NavigationDrawer extends StatelessWidget {
children: <Widget>[
?header,
Expanded(
+ flex: flex,
child: Material(
type: MaterialType.transparency,
child: ListView(children: wrappedChildren),
@@ -410,7 +414,7 @@ class _NavigationDestinationBuilder extends StatelessWidget {
child: _NavigationDestinationSemantics(
child: SizedBox(
height: navigationDrawerTheme.tileHeight ?? defaults.tileHeight,

View File

@@ -67,6 +67,8 @@ $ScrollPositionPatch = "lib/scripts/scroll_position.patch"
# expose `_shouldIgnorePointer`
$ScrollablePatch = "lib/scripts/scrollable.patch"
$TabsPatch = "lib/scripts/tabs.patch"
# TODO: remove
# https://github.com/flutter/flutter/issues/124078
# https://github.com/flutter/flutter/pull/183261
@@ -101,7 +103,7 @@ $patches = @($ModalBarrierPatch, $TextSelectionPatch, $MouseCursorPatch,
$ImageAnimPatch, $LayoutBuilderPatch, $NavigationDrawerPatch,
$PopupMenuPatch, $FABPatch, $NullSafetySelectableRegionPatch,
$SelectableRegionPatch, $EditableTextPatch, $TextFieldPatch,
$ScrollPositionPatch, $ScrollablePatch)
$ScrollPositionPatch, $ScrollablePatch, $TabsPatch)
switch ($platform.ToLower()) {
"android" {

24
lib/scripts/tabs.patch Normal file
View File

@@ -0,0 +1,24 @@
diff --git a/packages/flutter/lib/src/material/tabs.dart b/packages/flutter/lib/src/material/tabs.dart
index 87a611a6f60..acf799edbd3 100644
--- a/packages/flutter/lib/src/material/tabs.dart
+++ b/packages/flutter/lib/src/material/tabs.dart
@@ -2222,8 +2222,11 @@ class TabBarView extends StatefulWidget {
this.dragStartBehavior = DragStartBehavior.start,
this.viewportFraction = 1.0,
this.clipBehavior = Clip.hardEdge,
+ this.scrollDirection = Axis.horizontal,
});
+ final Axis scrollDirection;
+
/// This widget's selection and animation state.
///
/// If [TabController] is not provided, then the value of [DefaultTabController.of]
@@ -2522,6 +2525,7 @@ class _TabBarViewState extends State<TabBarView> {
return NotificationListener<ScrollNotification>(
onNotification: _handleScrollNotification,
child: PageView(
+ scrollDirection: widget.scrollDirection,
dragStartBehavior: widget.dragStartBehavior,
clipBehavior: widget.clipBehavior,
controller: _pageController,