Enable sort_child_properties_last lint (#91585)

This commit is contained in:
Ian Hickson 2021-10-11 21:23:02 -07:00 committed by GitHub
parent ee07b0eafc
commit 6d5fc420b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 171 additions and 169 deletions

View file

@ -186,7 +186,7 @@ linter:
- recursive_getters
- sized_box_for_whitespace
- slash_for_doc_comments
# - sort_child_properties_last # not yet tested
- sort_child_properties_last
- sort_constructors_first
# - sort_pub_dependencies # prevents separating pinned transitive dependencies
- sort_unnamed_constructors_first

View file

@ -16,14 +16,14 @@ class LogoScreen extends StatelessWidget {
Widget build(BuildContext context) {
print(_testSentinel);
return Container(
padding: const EdgeInsets.all(25),
color: Colors.blue,
child: Column(
children: <Widget>[
const Text('DeferredWidget', key: Key('DeferredWidget')),
Image.asset('customassets/flutter_logo.png', key: const Key('DeferredImage')),
]
),
padding: const EdgeInsets.all(25),
color: Colors.blue,
);
}
const Text('DeferredWidget', key: Key('DeferredWidget')),
Image.asset('customassets/flutter_logo.png', key: const Key('DeferredImage')),
],
),
);
}
}

View file

@ -132,18 +132,18 @@ class ExampleDragSource extends StatelessWidget {
if (heavy) {
return LongPressDraggable<Color>(
data: color,
child: contents,
feedback: feedback,
feedbackOffset: feedbackOffset,
dragAnchorStrategy: dragAnchorStrategy,
child: contents,
);
} else {
return Draggable<Color>(
data: color,
child: contents,
feedback: feedback,
feedbackOffset: feedbackOffset,
dragAnchorStrategy: dragAnchorStrategy,
child: contents,
);
}
}
@ -208,10 +208,10 @@ class MovableBall extends StatelessWidget {
if (position == ballPosition) {
return Draggable<bool>(
data: true,
child: ball,
childWhenDragging: dashedBall,
feedback: ball,
maxSimultaneousDrags: 1,
child: ball,
);
} else {
return DragTarget<bool>(

View file

@ -35,9 +35,6 @@ class MyStatelessWidget extends StatelessWidget {
width: 100,
height: 100,
child: CupertinoContextMenu(
child: Container(
color: Colors.red,
),
actions: <Widget>[
CupertinoContextMenuAction(
child: const Text('Action one'),
@ -52,6 +49,9 @@ class MyStatelessWidget extends StatelessWidget {
},
),
],
child: Container(
color: Colors.red,
),
),
),
),

View file

@ -38,12 +38,12 @@ class MyStatelessWidget extends StatelessWidget {
backgroundColor: Color(0xFFE0E0E0),
actions: <Widget>[
TextButton(
child: Text('OPEN'),
onPressed: null,
child: Text('OPEN'),
),
TextButton(
child: Text('DISMISS'),
onPressed: null,
child: Text('DISMISS'),
),
],
),

View file

@ -42,8 +42,8 @@ class MyStatelessWidget extends StatelessWidget {
backgroundColor: Colors.green,
actions: <Widget>[
TextButton(
child: Text('DISMISS'),
onPressed: null,
child: Text('DISMISS'),
),
],
),

View file

@ -97,8 +97,8 @@ class _BottomAppBarDemoState extends State<BottomAppBarDemo> {
floatingActionButton: _showFab
? FloatingActionButton(
onPressed: () {},
child: const Icon(Icons.add),
tooltip: 'Create',
child: const Icon(Icons.add),
)
: null,
floatingActionButtonLocation: _fabLocation,

View file

@ -50,8 +50,8 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
},
items: items.map((String item) {
return DropdownMenuItem<String>(
child: Text('Log $item'),
value: item,
child: Text('Log $item'),
);
}).toList(),
),

View file

@ -36,8 +36,8 @@ class MyStatelessWidget extends StatelessWidget {
onPressed: () {
// Add your onPressed code here!
},
child: const Icon(Icons.navigation),
backgroundColor: Colors.green,
child: const Icon(Icons.navigation),
),
);
}

View file

@ -105,8 +105,8 @@ class MyNavigationRailFab extends StatelessWidget {
),
child: animation.value == 0
? FloatingActionButton(
child: const Icon(Icons.add),
onPressed: onPressed,
child: const Icon(Icons.add),
)
: Align(
alignment: AlignmentDirectional.centerStart,

View file

@ -39,8 +39,8 @@ class MyStatelessWidget extends StatelessWidget {
content: Text('This is a MaterialBanner'),
actions: <Widget>[
TextButton(
child: Text('DISMISS'),
onPressed: null,
child: Text('DISMISS'),
),
],
),

View file

@ -34,7 +34,6 @@ class MyStatelessWidget extends StatelessWidget {
Widget build(BuildContext context) {
return Tooltip(
message: 'I am a Tooltip',
child: const Text('Tap this text and hold down to show a tooltip.'),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
gradient:
@ -48,6 +47,7 @@ class MyStatelessWidget extends StatelessWidget {
),
showDuration: const Duration(seconds: 2),
waitDuration: const Duration(seconds: 1),
child: const Text('Tap this text and hold down to show a tooltip.'),
);
}
}

View file

@ -56,8 +56,8 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
value: _currentStyle,
child: Center(
child: ElevatedButton(
child: const Text('Change Color'),
onPressed: _changeColor,
child: const Text('Change Color'),
),
),
);

View file

@ -42,7 +42,7 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
AnimatedSwitcher(
duration: const Duration(milliseconds: 500),
transitionBuilder: (Widget child, Animation<double> animation) {
return ScaleTransition(child: child, scale: animation);
return ScaleTransition(scale: animation, child: child);
},
child: Text(
'$_count',

View file

@ -71,9 +71,9 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
} else {
children = const <Widget>[
SizedBox(
child: CircularProgressIndicator(),
width: 60,
height: 60,
child: CircularProgressIndicator(),
),
Padding(
padding: EdgeInsets.only(top: 16),

View file

@ -82,9 +82,9 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
case ConnectionState.waiting:
children = const <Widget>[
SizedBox(
child: CircularProgressIndicator(),
width: 60,
height: 60,
child: CircularProgressIndicator(),
),
Padding(
padding: EdgeInsets.only(top: 16),

View file

@ -37,9 +37,9 @@ class MyStatelessWidget extends StatelessWidget {
width: 300,
color: Colors.red,
child: FittedBox(
fit: BoxFit.fill,
child: Image.network(
'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl-2.jpg'),
fit: BoxFit.fill,
),
);
}

View file

@ -34,7 +34,15 @@ class MyStatelessWidget extends StatelessWidget {
body: Center(
child: PhysicalShape(
elevation: 5.0,
clipper: ShapeBorderClipper(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
color: Colors.orange,
child: const SizedBox(
height: 200.0,
width: 200.0,
child: Center(
child: Text(
'Hello, World!',
@ -44,14 +52,7 @@ class MyStatelessWidget extends StatelessWidget {
),
),
),
height: 200.0,
width: 200.0,
),
clipper: ShapeBorderClipper(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
)),
color: Colors.orange,
),
),
);

View file

@ -42,11 +42,6 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
padding: const EdgeInsets.symmetric(vertical: 16),
itemBuilder: (BuildContext context, int index) {
return Dismissible(
child: ListTile(
title: Text(
'Item ${items[index]}',
),
),
background: Container(
color: Colors.green,
),
@ -56,6 +51,11 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
items.removeAt(index);
});
},
child: ListTile(
title: Text(
'Item ${items[index]}',
),
),
);
},
);

View file

@ -43,14 +43,6 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
Draggable<int>(
// Data is the value this Draggable stores.
data: 10,
child: Container(
height: 100.0,
width: 100.0,
color: Colors.lightGreenAccent,
child: const Center(
child: Text('Draggable'),
),
),
feedback: Container(
color: Colors.deepOrange,
height: 100,
@ -65,6 +57,14 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
child: Text('Child When Dragging'),
),
),
child: Container(
height: 100.0,
width: 100.0,
color: Colors.lightGreenAccent,
child: const Center(
child: Text('Draggable'),
),
),
),
DragTarget<int>(
builder: (

View file

@ -42,10 +42,10 @@ class MyStatelessWidget extends StatelessWidget {
return child;
}
return AnimatedOpacity(
child: child,
opacity: frame == null ? 0 : 1,
duration: const Duration(seconds: 1),
curve: Curves.easeOut,
child: child,
);
},
),

View file

@ -49,12 +49,12 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
mainAxisSize: MainAxisSize.min,
children: <Widget>[
ElevatedButton(
child: const Text('Slide up'),
onPressed: _slideUp,
child: const Text('Slide up'),
),
ElevatedButton(
child: const Text('Slide down'),
onPressed: _slideDown,
child: const Text('Slide down'),
),
Padding(
padding: const EdgeInsets.all(50),

View file

@ -45,8 +45,8 @@ class _MyHomePageState extends State<MyHomePage> {
title: const Text('Persistence Example'),
),
body: PageStorage(
child: pages[currentTab],
bucket: _bucket,
child: pages[currentTab],
),
bottomNavigationBar: BottomNavigationBar(
currentIndex: currentTab,

View file

@ -74,8 +74,8 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget>
@override
Widget build(BuildContext context) {
return OutlinedButton(
child: Text('${_answer.value}'),
onPressed: _incrementAnswer,
child: Text('${_answer.value}'),
);
}
}

View file

@ -29,16 +29,16 @@ class MyStatelessWidget extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
body: RawScrollbar(
child: ListView(
children: List<Text>.generate(
100, (int index) => Text((index * index).toString())),
physics: const BouncingScrollPhysics(),
),
shape: const StadiumBorder(
side: BorderSide(color: Colors.brown, width: 3.0)),
thickness: 15.0,
thumbColor: Colors.blue,
isAlwaysShown: true,
child: ListView(
physics: const BouncingScrollPhysics(),
children: List<Text>.generate(
100, (int index) => Text((index * index).toString())),
),
),
);
}

View file

@ -795,6 +795,8 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
assert(debugIsFlipped == isHourRegionFlipped);
},
looping: true,
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(24, (int index) {
final int hour = isHourRegionFlipped ? (index + 12) % 24 : index;
final int displayHour = widget.use24hFormat ? hour : (hour + 11) % 12 + 1;
@ -808,8 +810,6 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
),
);
}),
looping: true,
selectionOverlay: selectionOverlay,
),
);
}
@ -835,6 +835,8 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
backgroundColor: widget.backgroundColor,
squeeze: _kSqueeze,
onSelectedItemChanged: _onSelectedItemChange,
looping: true,
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(60 ~/ widget.minuteInterval, (int index) {
final int minute = index * widget.minuteInterval;
@ -858,8 +860,6 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
),
);
}),
looping: true,
selectionOverlay: selectionOverlay,
),
);
}
@ -889,6 +889,7 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
assert(selectedAmPm == 0 || selectedAmPm == 1);
_onSelectedItemChange(index);
},
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(2, (int index) {
return itemPositioningBuilder(
context,
@ -900,7 +901,6 @@ class _CupertinoDatePickerDateTimeState extends State<CupertinoDatePicker> {
),
);
}),
selectionOverlay: selectionOverlay,
),
);
}
@ -1172,6 +1172,8 @@ class _CupertinoDatePickerDateState extends State<CupertinoDatePicker> {
if (_isCurrentDateValid)
widget.onDateTimeChanged(DateTime(selectedYear, selectedMonth, selectedDay));
},
looping: true,
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(31, (int index) {
final int day = index + 1;
return itemPositioningBuilder(
@ -1182,8 +1184,6 @@ class _CupertinoDatePickerDateState extends State<CupertinoDatePicker> {
),
);
}),
looping: true,
selectionOverlay: selectionOverlay,
),
);
}
@ -1213,6 +1213,8 @@ class _CupertinoDatePickerDateState extends State<CupertinoDatePicker> {
if (_isCurrentDateValid)
widget.onDateTimeChanged(DateTime(selectedYear, selectedMonth, selectedDay));
},
looping: true,
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(12, (int index) {
final int month = index + 1;
final bool isInvalidMonth = (widget.minimumDate?.year == selectedYear && widget.minimumDate!.month > month)
@ -1226,8 +1228,6 @@ class _CupertinoDatePickerDateState extends State<CupertinoDatePicker> {
),
);
}),
looping: true,
selectionOverlay: selectionOverlay,
),
);
}
@ -1782,6 +1782,7 @@ class _CupertinoTimerPickerState extends State<CupertinoTimerPicker> {
);
});
},
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(24, (int index) {
final String label = localizations.timerPickerHourLabel(index) ?? '';
final String semanticsLabel = textDirectionFactor == 1
@ -1794,7 +1795,6 @@ class _CupertinoTimerPickerState extends State<CupertinoTimerPicker> {
child: _buildPickerNumberLabel(localizations.timerPickerHour(index), additionalPadding),
);
}),
selectionOverlay: selectionOverlay,
);
}
@ -1847,6 +1847,7 @@ class _CupertinoTimerPickerState extends State<CupertinoTimerPicker> {
);
});
},
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(60 ~/ widget.minuteInterval, (int index) {
final int minute = index * widget.minuteInterval;
final String label = localizations.timerPickerMinuteLabel(minute) ?? '';
@ -1860,7 +1861,6 @@ class _CupertinoTimerPickerState extends State<CupertinoTimerPicker> {
child: _buildPickerNumberLabel(localizations.timerPickerMinute(minute), additionalPadding),
);
}),
selectionOverlay: selectionOverlay,
);
}
@ -1913,6 +1913,7 @@ class _CupertinoTimerPickerState extends State<CupertinoTimerPicker> {
);
});
},
selectionOverlay: selectionOverlay,
children: List<Widget>.generate(60 ~/ widget.secondInterval, (int index) {
final int second = index * widget.secondInterval;
final String label = localizations.timerPickerSecondLabel(second) ?? '';
@ -1926,7 +1927,6 @@ class _CupertinoTimerPickerState extends State<CupertinoTimerPicker> {
child: _buildPickerNumberLabel(localizations.timerPickerSecond(second), additionalPadding),
);
}),
selectionOverlay: selectionOverlay,
);
}

View file

@ -381,8 +381,8 @@ class _MaterialBannerState extends State<MaterialBanner> {
}
return Hero(
child: ClipRect(child: materialBannerTransition),
tag: '<MaterialBanner Hero tag - ${widget.content}>',
child: ClipRect(child: materialBannerTransition),
);
}
}

View file

@ -195,8 +195,8 @@ class _DropdownMenuItemButtonState<T> extends State<_DropdownMenuItemButton<T>>
enableFeedback: widget.enableFeedback,
onTap: _handleOnTap,
onFocusChange: _handleFocusChange,
child: child,
borderRadius: itemBorderRadius,
child: child,
);
}
child = FadeTransition(opacity: opacity, child: child);

View file

@ -759,7 +759,7 @@ class _StepperState extends State<Stepper> with TickerProviderStateMixin {
AnimatedSize(
curve: Curves.fastOutSlowIn,
duration: kThemeAnimationDuration,
child: Column(children: stepPanels, crossAxisAlignment: CrossAxisAlignment.stretch),
child: Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: stepPanels),
),
_buildVerticalControls(widget.currentStep),
],

View file

@ -88,8 +88,8 @@ void main() {
const CupertinoApp(
home: Center(
child: CupertinoFormRow(
child: CupertinoTextField(),
error: error,
child: CupertinoTextField(),
),
),
),
@ -105,8 +105,8 @@ void main() {
const CupertinoApp(
home: Center(
child: CupertinoFormRow(
child: CupertinoTextField(),
helper: helper,
child: CupertinoTextField(),
),
),
),
@ -123,9 +123,9 @@ void main() {
const CupertinoApp(
home: Center(
child: CupertinoFormRow(
child: CupertinoTextField(),
helper: helper,
error: error,
child: CupertinoTextField(),
),
),
),
@ -145,9 +145,9 @@ void main() {
const CupertinoApp(
home: Center(
child: CupertinoFormRow(
child: CupertinoTextField(),
helper: helper,
error: error,
child: CupertinoTextField(),
),
),
),

View file

@ -182,9 +182,9 @@ void main() {
width: 300.0,
child: CupertinoPicker(
itemExtent: 15.0,
children: const <Widget>[Text('1'), Text('1')],
onSelectedItemChanged: (int i) {},
selectionOverlay: const CupertinoPickerDefaultSelectionOverlay(background: Color(0x12345678)),
children: const <Widget>[Text('1'), Text('1')],
),
),
),

View file

@ -3536,7 +3536,8 @@ void main() {
value: 'One',
items: const <DropdownMenuItem<String>>[
DropdownMenuItem<String>(
child: Text('One'), value: 'One'
value: 'One',
child: Text('One')
),
],
onChanged: (_) { },

View file

@ -175,13 +175,13 @@ void main() {
initiallyExpanded: true,
title: TestText('Expanded', key: expandedTitleKey),
backgroundColor: Colors.red,
children: const <Widget>[ListTile(title: Text('0'))],
trailing: TestIcon(key: expandedIconKey),
children: const <Widget>[ListTile(title: Text('0'))],
),
ExpansionTile(
title: TestText('Collapsed', key: collapsedTitleKey),
children: const <Widget>[ListTile(title: Text('0'))],
trailing: TestIcon(key: collapsedIconKey),
children: const <Widget>[ListTile(title: Text('0'))],
),
],
),

View file

@ -19,16 +19,16 @@ void main() {
subtitle: const Text('Subtitle'),
trailing: const Icon(Icons.thumb_up),
),
child: DecoratedBox(
decoration: BoxDecoration(
color: Colors.green[500],
),
),
footer: GridTileBar(
key: footerKey,
title: const Text('Footer'),
backgroundColor: Colors.black38,
),
child: DecoratedBox(
decoration: BoxDecoration(
color: Colors.green[500],
),
),
),
));

View file

@ -556,9 +556,9 @@ void main() {
testWidgets('PopupMenuButton fails when given both child and icon', (WidgetTester tester) async {
expect(() {
PopupMenuButton<int>(
child: const Text('heyo'),
icon: const Icon(Icons.view_carousel),
itemBuilder: simplePopupMenuItemBuilder,
child: const Text('heyo'),
);
}, throwsAssertionError);
});
@ -1699,8 +1699,8 @@ void main() {
expect(() {
PopupMenuButton<int>(
itemBuilder: (BuildContext context) => <PopupMenuItem<int>>[],
child: Container(),
icon: const Icon(Icons.error),
child: Container(),
);
}, throwsAssertionError);
});

View file

@ -1520,10 +1520,10 @@ void main() {
testWidgets('ReorderableListView asserts on both non-null itemExtent and prototypeItem', (WidgetTester tester) async {
expect(() => ReorderableListView(
children: const <Widget>[],
itemExtent: 30,
prototypeItem: const SizedBox(),
onReorder: (int fromIndex, int toIndex) { },
children: const <Widget>[],
), throwsAssertionError);
});

View file

@ -3789,12 +3789,12 @@ void main() {
tabs: <Widget>[
Tab(
icon: Icon(Icons.check,size: 40),
child: Text('1 - OK',style: TextStyle(fontSize: 25),),
height: 85,
child: Text('1 - OK',style: TextStyle(fontSize: 25),),
), // icon and child
Tab(
child: Text('2 - OK',style: TextStyle(fontSize: 25),),
height: 85,
child: Text('2 - OK',style: TextStyle(fontSize: 25),),
), // child
Tab(
icon: Icon(Icons.done,size: 40),

View file

@ -16,8 +16,8 @@ void main() {
child: CustomPaint(
key: key,
painter: SimplePainter(),
child: const RepaintBoundary(child: Placeholder()),
foregroundPainter: SimplePainter(),
child: const RepaintBoundary(child: Placeholder()),
),
));

View file

@ -28,11 +28,11 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragStarted: () {
++dragStartedCount;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -103,8 +103,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -178,8 +178,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -254,8 +254,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -327,8 +327,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -402,8 +402,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
Stack(
children: <Widget>[
@ -495,6 +495,7 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
feedback: const Text('Dragging'),
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
@ -502,7 +503,6 @@ void main() {
},
child: const Text('Button'),
),
feedback: const Text('Dragging'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -552,8 +552,8 @@ void main() {
children: <Widget>[
const LongPressDraggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -601,8 +601,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -665,15 +665,15 @@ void main() {
Container(height: 400.0),
const Draggable<int>(
data: 1,
child: Text('H'),
feedback: Text('Dragging'),
affinity: Axis.horizontal,
child: Text('H'),
),
const Draggable<int>(
data: 2,
child: Text('V'),
feedback: Text('Dragging'),
affinity: Axis.vertical,
child: Text('V'),
),
Container(height: 500.0),
Container(height: 500.0),
@ -776,15 +776,15 @@ void main() {
Container(width: 400.0),
const Draggable<int>(
data: 1,
child: Text('H'),
feedback: Text('Dragging'),
affinity: Axis.horizontal,
child: Text('H'),
),
const Draggable<int>(
data: 2,
child: Text('V'),
feedback: Text('Dragging'),
affinity: Axis.vertical,
child: Text('V'),
),
Container(width: 500.0),
Container(width: 500.0),
@ -886,23 +886,23 @@ void main() {
Container(width: 400.0),
const Draggable<int>(
data: 1,
child: Text('H'),
feedback: Text('H'),
childWhenDragging: SizedBox(),
axis: Axis.horizontal,
child: Text('H'),
),
const Draggable<int>(
data: 2,
child: Text('V'),
feedback: Text('V'),
childWhenDragging: SizedBox(),
axis: Axis.vertical,
child: Text('V'),
),
const Draggable<int>(
data: 3,
child: Text('N'),
feedback: Text('N'),
childWhenDragging: SizedBox(),
child: Text('N'),
),
Container(width: 500.0),
Container(width: 500.0),
@ -1009,32 +1009,32 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragUpdate: (DragUpdateDetails details) {
dragDelta += details.delta;
updated++;
},
child: const Text('Source'),
),
Draggable<int>(
data: 2,
child: const Text('Vertical Source'),
feedback: const Text('Vertical Dragging'),
onDragUpdate: (DragUpdateDetails details) {
dragDelta += details.delta;
updated++;
},
axis: Axis.vertical,
child: const Text('Vertical Source'),
),
Draggable<int>(
data: 3,
child: const Text('Horizontal Source'),
feedback: const Text('Horizontal Dragging'),
onDragUpdate: (DragUpdateDetails details) {
dragDelta += details.delta;
updated++;
},
axis: Axis.horizontal,
child: const Text('Horizontal Source'),
),
],
),
@ -1157,11 +1157,11 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDraggableCanceled: (Velocity velocity, Offset offset) {
onDraggableCanceledCalled = true;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1227,13 +1227,13 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDraggableCanceled: (Velocity velocity, Offset offset) {
onDraggableCanceledCalled = true;
onDraggableCanceledVelocity = velocity;
onDraggableCanceledOffset = offset;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1303,13 +1303,13 @@ void main() {
home: Column(children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Source'),
onDraggableCanceled: (Velocity velocity, Offset offset) {
onDraggableCanceledCalled = true;
onDraggableCanceledVelocity = velocity;
onDraggableCanceledOffset = offset;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1354,12 +1354,12 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragEnd: (DraggableDetails details) {
onDragEndCalled = true;
onDragEndDraggableDetails = details;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1426,8 +1426,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1481,11 +1481,11 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDraggableCanceled: (Velocity velocity, Offset offset) {
numberOfTimesOnDraggableCanceledCalled++;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1566,11 +1566,11 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragCompleted: () {
onDragCompletedCalled = true;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1637,12 +1637,12 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragEnd: (DraggableDetails details) {
onDragEndCalled = true;
onDragEndDraggableDetails = details;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1712,11 +1712,11 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragEnd: (DraggableDetails details) {
timesOnDragEndCalled++;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1756,8 +1756,8 @@ void main() {
children: const <Widget>[
Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
],
),
@ -1779,11 +1779,11 @@ void main() {
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragCompleted: () {
onDragCompletedCalled = true;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -1848,13 +1848,13 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('IntSource'),
feedback: Text('IntDragging'),
child: Text('IntSource'),
),
const Draggable<double>(
data: 1.0,
child: Text('DoubleSource'),
feedback: Text('DoubleDragging'),
child: Text('DoubleSource'),
),
Stack(
children: <Widget>[
@ -1982,8 +1982,8 @@ void main() {
children: <Widget>[
Draggable<DragTargetData>(
data: dragTargetData,
child: const Text('Source'),
feedback: const Text('Dragging'),
child: const Text('Source'),
),
Stack(
children: <Widget>[
@ -2050,8 +2050,8 @@ void main() {
Draggable<int>(
data: 1,
maxSimultaneousDrags: maxSimultaneousDrags,
child: const Text('Source'),
feedback: const Text('Dragging'),
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2179,14 +2179,14 @@ void main() {
didTap = true;
},
child: Draggable<Object>(
child: Container(
color: const Color(0xFFFFFF00),
),
feedback: Container(
width: 100.0,
height: 100.0,
color: const Color(0xFFFF0000),
),
child: Container(
color: const Color(0xFFFFFF00),
),
),
),
),
@ -2215,14 +2215,14 @@ void main() {
builder: (BuildContext context) => GestureDetector(
onTap: () { /* registers a tap recognizer */ },
child: Draggable<Object>(
child: Container(
color: const Color(0xFFFFFF00),
),
feedback: Container(
width: 100.0,
height: 100.0,
color: const Color(0xFFFF0000),
),
child: Container(
color: const Color(0xFFFFFF00),
),
),
),
),
@ -2247,8 +2247,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2288,8 +2288,8 @@ void main() {
children: const <Widget>[
Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
],
),
@ -2309,8 +2309,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2415,12 +2415,12 @@ void main() {
children: <Widget>[
LongPressDraggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragEnd: (DraggableDetails details) {
onDragEndCalled = true;
onDragEndDraggableDetails = details;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2501,11 +2501,11 @@ void main() {
children: <Widget>[
LongPressDraggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragCompleted: () {
onDragCompletedCalled = true;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2573,11 +2573,11 @@ void main() {
await tester.pumpWidget(MaterialApp(
home: LongPressDraggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragStarted: () {
onDragStartedCalled = true;
},
child: const Text('Source'),
),
));
@ -2606,11 +2606,11 @@ void main() {
home: LongPressDraggable<int>(
data: 1,
delay: const Duration(seconds: 2),
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragStarted: () {
onDragStartedCalled = true;
},
child: const Text('Source'),
),
));
expect(find.text('Source'), findsOneWidget);
@ -2639,11 +2639,11 @@ void main() {
await tester.pumpWidget(MaterialApp(
home: LongPressDraggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragStarted: () {
onDragStartedCalled = true;
},
child: const Text('Source'),
),
));
expect(find.text('Source'), findsOneWidget);
@ -2702,9 +2702,9 @@ void main() {
settings: settings,
builder: (BuildContext context) => const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
rootOverlay: true,
child: Text('Source'),
),
);
}
@ -2758,8 +2758,8 @@ void main() {
children: <Widget>[
const Draggable<int>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<Object>(
builder: (BuildContext context, List<Object?> data, List<dynamic> rejects) {
@ -2794,8 +2794,8 @@ void main() {
children: <Widget>[
const Draggable<Object>(
data: 1,
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2830,8 +2830,8 @@ void main() {
home: Column(
children: <Widget>[
const Draggable<Object>(
child: Text('Source'),
feedback: Text('Dragging'),
child: Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {
@ -2880,25 +2880,25 @@ void main() {
Container(width: 400.0),
const Draggable<int>(
data: 1,
child: Text('H'),
feedback: Text('H'),
childWhenDragging: SizedBox(),
axis: Axis.horizontal,
ignoringFeedbackSemantics: false,
child: Text('H'),
),
const Draggable<int>(
data: 2,
child: Text('V'),
feedback: Text('V'),
childWhenDragging: SizedBox(),
axis: Axis.vertical,
ignoringFeedbackSemantics: false,
child: Text('V'),
),
const Draggable<int>(
data: 3,
child: Text('N'),
feedback: Text('N'),
childWhenDragging: SizedBox(),
child: Text('N'),
),
],
),
@ -3038,12 +3038,12 @@ void main() {
home: Column(
children: <Widget>[
Draggable<int>(
child: const Text('Source'),
feedback: const Text('Feedback'),
dragAnchorStrategy: (Draggable<Object> widget, BuildContext context, Offset position) {
dragAnchorStrategyCalled = true;
return Offset.zero;
},
child: const Text('Source'),
),
],
),
@ -3099,12 +3099,12 @@ void main() {
const Widget widget1 = Placeholder(key: ValueKey<int>(1));
const Widget widget2 = Placeholder(key: ValueKey<int>(2));
Offset dummyStrategy(Draggable<Object> draggable, BuildContext context, Offset position) => Offset.zero;
expect(const LongPressDraggable<int>(child: widget1, feedback: widget2), isA<Draggable<int>>());
expect(const LongPressDraggable<int>(child: widget1, feedback: widget2).child, widget1);
expect(const LongPressDraggable<int>(child: widget1, feedback: widget2).feedback, widget2);
expect(const LongPressDraggable<int>(child: widget1, feedback: widget2).dragAnchor, DragAnchor.child);
expect(const LongPressDraggable<int>(child: widget1, feedback: widget2, dragAnchor: DragAnchor.pointer).dragAnchor, DragAnchor.pointer);
expect(LongPressDraggable<int>(child: widget1, feedback: widget2, dragAnchorStrategy: dummyStrategy).dragAnchorStrategy, dummyStrategy);
expect(const LongPressDraggable<int>(feedback: widget2, child: widget1), isA<Draggable<int>>());
expect(const LongPressDraggable<int>(feedback: widget2, child: widget1).child, widget1);
expect(const LongPressDraggable<int>(feedback: widget2, child: widget1).feedback, widget2);
expect(const LongPressDraggable<int>(feedback: widget2, child: widget1).dragAnchor, DragAnchor.child);
expect(const LongPressDraggable<int>(feedback: widget2, dragAnchor: DragAnchor.pointer, child: widget1).dragAnchor, DragAnchor.pointer);
expect(LongPressDraggable<int>(feedback: widget2, dragAnchorStrategy: dummyStrategy, child: widget1).dragAnchorStrategy, dummyStrategy);
});
}
@ -3121,12 +3121,12 @@ Future<void> _testLongPressDraggableHapticFeedback({ required WidgetTester teste
await tester.pumpWidget(MaterialApp(
home: LongPressDraggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
hapticFeedbackOnStart: hapticFeedbackOnStart,
onDragStarted: () {
onDragStartedCalled = true;
},
child: const Text('Source'),
),
));
@ -3169,11 +3169,11 @@ Future<void> _testChildAnchorFeedbackPosition({ required WidgetTester tester, do
children: <Widget>[
Draggable<int>(
data: 1,
child: const Text('Source'),
feedback: const Text('Dragging'),
onDragStarted: () {
++dragStartedCount;
},
child: const Text('Source'),
),
DragTarget<int>(
builder: (BuildContext context, List<int?> data, List<dynamic> rejects) {

View file

@ -25,9 +25,9 @@ void main() {
child: SizedBox.fromSize(
size: size,
child: PageView(
children: kStates.map<Widget>((String state) => Text(state)).toList(),
controller: controller,
onPageChanged: (int page) { },
children: kStates.map<Widget>((String state) => Text(state)).toList(),
),
),
),
@ -70,9 +70,9 @@ void main() {
child: SizedBox.fromSize(
size: size,
child: PageView(
children: kStates.map<Widget>((String state) => Text(state)).toList(),
controller: controller,
onPageChanged: (int page) { },
children: kStates.map<Widget>((String state) => Text(state)).toList(),
),
),
),

View file

@ -397,8 +397,8 @@ void main() {
await tester.pumpWidget(
Transform.translate(
offset: const Offset(25.0, 25.0),
child: const SizedBox(width: 100, height: 100),
filterQuality: FilterQuality.low,
child: const SizedBox(width: 100, height: 100),
),
);
expect(tester.layers.whereType<ImageFilterLayer>().length, 1);
@ -408,8 +408,8 @@ void main() {
await tester.pumpWidget(
Transform.scale(
scale: 3.14159,
child: const SizedBox(width: 100, height: 100),
filterQuality: FilterQuality.low,
child: const SizedBox(width: 100, height: 100),
),
);
expect(tester.layers.whereType<ImageFilterLayer>().length, 1);
@ -419,8 +419,8 @@ void main() {
await tester.pumpWidget(
Transform.rotate(
angle: math.pi / 4,
child: const SizedBox(width: 100, height: 100),
filterQuality: FilterQuality.low,
child: const SizedBox(width: 100, height: 100),
),
);
expect(tester.layers.whereType<ImageFilterLayer>().length, 1);
@ -430,8 +430,8 @@ void main() {
await tester.pumpWidget(
Transform.rotate(
angle: math.pi / 4,
child: const SizedBox(width: 100, height: 100),
filterQuality: FilterQuality.low,
child: const SizedBox(width: 100, height: 100),
),
);
expect(tester.layers.whereType<ImageFilterLayer>(), hasLength(1));
@ -455,8 +455,8 @@ void main() {
await tester.pumpWidget(
Transform.rotate(
angle: math.pi / 4,
child: const SizedBox(width: 100, height: 100),
filterQuality: FilterQuality.low,
child: const SizedBox(width: 100, height: 100),
),
);
expect(tester.layers.whereType<ImageFilterLayer>(), hasLength(1));
@ -483,18 +483,18 @@ void main() {
),
Transform.rotate(
angle: math.pi / 6,
child: Center(child: Container(width: 100, height: 20, color: const Color(0xff00ff00))),
filterQuality: FilterQuality.low,
child: Center(child: Container(width: 100, height: 20, color: const Color(0xff00ff00))),
),
Transform.scale(
scale: 1.5,
child: Center(child: Container(width: 100, height: 20, color: const Color(0xff00ff00))),
filterQuality: FilterQuality.low,
child: Center(child: Container(width: 100, height: 20, color: const Color(0xff00ff00))),
),
Transform.translate(
offset: const Offset(20.0, 60.0),
child: Center(child: Container(width: 100, height: 20, color: const Color(0xff00ff00))),
filterQuality: FilterQuality.low,
child: Center(child: Container(width: 100, height: 20, color: const Color(0xff00ff00))),
),
],
),

View file

@ -106,9 +106,9 @@ void main() {
await tester.pumpWidget(Center(
child: Visibility(
child: testChild,
replacement: const Placeholder(),
visible: false,
child: testChild,
),
));
expect(find.byType(Text, skipOffstage: false), findsNothing);
@ -123,8 +123,8 @@ void main() {
await tester.pumpWidget(Center(
child: Visibility(
child: testChild,
replacement: const Placeholder(),
child: testChild,
),
));
expect(find.byType(Text, skipOffstage: false), findsOneWidget);