Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 : FIX : Long labels overflowing in extended navigation rail. #145474

Merged
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
fa4fca9
🐛 : FIX : Long labels overflowing in extended navigation rail.
aliasgar4558 Mar 20, 2024
1156c28
Merge branch 'flutter:master' into Code/Fix/label_overflow_in_extende…
aliasgar4558 Mar 20, 2024
156694f
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 20, 2024
b728a46
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 21, 2024
da1d802
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 21, 2024
b223d7e
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 22, 2024
0f5b16a
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 23, 2024
a376245
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 23, 2024
71978c2
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 23, 2024
8a6d5d9
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 23, 2024
aab3962
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 23, 2024
cc17e01
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 24, 2024
9ec4d7c
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 24, 2024
058dbb9
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 25, 2024
17d4f91
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 25, 2024
4c523e1
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 25, 2024
98a639a
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 26, 2024
f31daa8
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 26, 2024
a7e9735
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 26, 2024
4725df8
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 27, 2024
e581bf9
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 27, 2024
251effd
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 28, 2024
7f4e863
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 28, 2024
515e110
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 28, 2024
c65a9e5
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 28, 2024
0c342f7
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 29, 2024
2b34357
🎨 : Expanded replaced with "Flexible" to prevent overflow bounds.
aliasgar4558 Mar 29, 2024
c997a9b
✅ : Tightly coupled test case added.
aliasgar4558 Mar 29, 2024
a503388
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Mar 29, 2024
b8eeb27
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 1, 2024
b74bf0d
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 8, 2024
861a377
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 11, 2024
240e99b
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 21, 2024
a461ec6
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 21, 2024
50e261d
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 23, 2024
7d91e6b
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 24, 2024
affc19b
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 26, 2024
0955bb4
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 28, 2024
bb3f8af
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 Apr 29, 2024
0963364
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 1, 2024
bb277b2
Merge branch 'flutter:master' into Code/Fix/label_overflow_in_extende…
aliasgar4558 May 4, 2024
abbf860
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 4, 2024
0b5803f
✅ : Test case updated to determine the Nav. destination's height on w…
aliasgar4558 May 4, 2024
0e2381e
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 5, 2024
11a2bce
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 6, 2024
a95116a
Apply suggestions from code review
aliasgar4558 May 6, 2024
833c979
Update packages/flutter/test/material/navigation_rail_test.dart
aliasgar4558 May 7, 2024
b92a815
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 7, 2024
db66288
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 7, 2024
f784461
Merge branch 'main' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 7, 2024
9f88074
💡 : PR comments & suggestions resolved for test case.
aliasgar4558 May 7, 2024
1398cfe
Merge branch 'flutter:master' into Code/Fix/label_overflow_in_extende…
aliasgar4558 May 7, 2024
0082afe
Merge branch 'Code/Fix/label_overflow_in_extended_rail' into Code/Fix…
aliasgar4558 May 7, 2024
d6458a8
Merge branch 'flutter:master' into Code/Fix/label_overflow_in_extende…
aliasgar4558 May 7, 2024
908ee43
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 7, 2024
f0bd607
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 8, 2024
ecf9a3f
Merge branch 'master' into Code/Fix/label_overflow_in_extended_rail
aliasgar4558 May 8, 2024
1205c75
♻️ : Text label refactored in test.
aliasgar4558 May 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
19 changes: 11 additions & 8 deletions packages/flutter/lib/src/material/navigation_rail.dart
Original file line number Diff line number Diff line change
Expand Up @@ -698,16 +698,19 @@ class _RailDestinationState extends State<_RailDestination> {
),
child: ClipRect(
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
iconPart,
Align(
heightFactor: 1.0,
widthFactor: widget.extendedTransitionAnimation.value,
alignment: AlignmentDirectional.centerStart,
child: FadeTransition(
alwaysIncludeSemantics: true,
opacity: labelFadeAnimation,
child: styledLabel,
Flexible(
child: Align(
heightFactor: 1.0,
widthFactor: widget.extendedTransitionAnimation.value,
alignment: AlignmentDirectional.centerStart,
child: FadeTransition(
alwaysIncludeSemantics: true,
opacity: labelFadeAnimation,
child: styledLabel,
),
),
),
SizedBox(width: _horizontalDestinationPadding * widget.extendedTransitionAnimation.value),
Expand Down
57 changes: 57 additions & 0 deletions packages/flutter/test/material/navigation_rail_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart';

import '../widgets/semantics_tester.dart';

void main() {
Expand Down Expand Up @@ -3631,6 +3632,62 @@ void main() {
expect(tester.takeException(), isNull);
});

testWidgets('NavigationRail labels shall not overflow if longer texts provided - extended', (WidgetTester tester) async {

// The navigation rail has a narrow width constraint. The text should wrap.
bleroux marked this conversation as resolved.
Show resolved Hide resolved
await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: true),
bleroux marked this conversation as resolved.
Show resolved Hide resolved
home: Builder(
builder: (BuildContext context) {
return MediaQuery.withClampedTextScaling(
minScaleFactor: 1.0,
maxScaleFactor: 1.0,
bleroux marked this conversation as resolved.
Show resolved Hide resolved
child: Scaffold(
body: Row(
children: <Widget>[
SizedBox(
width: 140.0,
child: NavigationRail(
selectedIndex: 1,
extended: true,
destinations: const <NavigationRailDestination>[
NavigationRailDestination(
icon: Icon(Icons.favorite_border),
selectedIcon: Icon(Icons.favorite),
label: Text('Abc'),
),
NavigationRailDestination(
icon: Icon(Icons.bookmark_border),
selectedIcon: Icon(Icons.bookmark),
label: Text('Very long bookmark text for navigation destination'),
),
],
),
),
const Expanded(
child: Text('body'),
),
],
),
),
);
},
),
));

expect(find.byType(NavigationRail), findsOneWidget);
final Finder normalLabelNavDestinationFinder = find.text(
'Abc',
);
final Finder longLabelNavDestinationFinder = find.text(
'Very long bookmark text for navigation destination',
);
expect(normalLabelNavDestinationFinder, findsOneWidget);
expect(longLabelNavDestinationFinder, findsOneWidget);
bleroux marked this conversation as resolved.
Show resolved Hide resolved
// If the widget manages to layout without throwing an overflow exception,
// the test passes.
aliasgar4558 marked this conversation as resolved.
Show resolved Hide resolved
});

group('Material 2', () {
// These tests are only relevant for Material 2. Once Material 2
// support is deprecated and the APIs are removed, these tests
Expand Down