Use default drag_handle icon for splitters. (#2077)
* Use default drag_handle icon for splitters.
diff --git a/packages/devtools_app/lib/src/split.dart b/packages/devtools_app/lib/src/split.dart
index fd43d84..4dc40fd 100644
--- a/packages/devtools_app/lib/src/split.dart
+++ b/packages/devtools_app/lib/src/split.dart
@@ -76,9 +76,6 @@
@visibleForTesting
Key dividerKey(int index) => Key('$this dividerKey $index');
- /// The default size of the divider between children.
- static const double defaultSplitterSize = 10.0;
-
static Axis axisFor(BuildContext context, double horizontalAspectRatio) {
final screenSize = MediaQuery.of(context).size;
final aspectRatio = screenSize.width / screenSize.height;
@@ -270,7 +267,7 @@
dragStartBehavior: DragStartBehavior.down,
child: widget.splitters != null
? widget.splitters[i]
- : _defaultSplitter(layoutHeight: height, layoutWidth: width),
+ : DefaultSplitter(isHorizontal: isHorizontal),
),
),
]);
@@ -281,7 +278,7 @@
double _totalSplitterSize() {
final numSplitters = widget.children.length - 1;
if (widget.splitters == null) {
- return numSplitters * Split.defaultSplitterSize;
+ return numSplitters * DefaultSplitter.size;
} else {
var totalSize = 0.0;
for (var splitter in widget.splitters) {
@@ -290,47 +287,24 @@
return totalSize;
}
}
+}
- Widget _defaultSplitter({
- @required double layoutWidth,
- @required double layoutHeight,
- }) {
- final crossAxisSize = isHorizontal ? layoutHeight : layoutWidth;
+class DefaultSplitter extends StatelessWidget {
+ const DefaultSplitter({
+ @required this.isHorizontal,
+ });
- // TODO(https://github.com/flutter/flutter/issues/43747): use an icon.
- // The material icon for a drag handle is not currently available.
- // For now, draw an indicator that is 3 lines running in the direction
- // of the main axis, like a hamburger menu.
- // TODO: use Icons.drag_handle
- final defaultDragIndicator = Flex(
- direction: isHorizontal ? Axis.vertical : Axis.horizontal,
- mainAxisSize: MainAxisSize.min,
- children: [
- for (var i = 0; i < math.min(crossAxisSize / 6.0, 3).floor(); i++)
- Padding(
- padding: EdgeInsets.symmetric(
- vertical: isHorizontal ? 2.0 : 0.0,
- horizontal: isHorizontal ? 0.0 : 2.0,
- ),
- child: DecoratedBox(
- decoration: BoxDecoration(
- color: Theme.of(context).dividerColor,
- borderRadius: BorderRadius.circular(Split.defaultSplitterSize),
- ),
- child: SizedBox(
- height: isHorizontal ? 2.0 : Split.defaultSplitterSize - 2.0,
- width: isHorizontal ? Split.defaultSplitterSize - 2.0 : 2.0,
- ),
- ),
- ),
- ],
- );
+ static const double size = 24.0;
- return SizedBox(
- width: isHorizontal ? Split.defaultSplitterSize : layoutWidth,
- height: isHorizontal ? layoutHeight : Split.defaultSplitterSize,
- child: Center(
- child: defaultDragIndicator,
+ final bool isHorizontal;
+
+ @override
+ Widget build(BuildContext context) {
+ return Transform.rotate(
+ angle: isHorizontal ? degToRad(90.0) : degToRad(0.0),
+ child: const Icon(
+ Icons.drag_handle,
+ size: size,
),
);
}
diff --git a/packages/devtools_app/test/goldens/timeline_flame_chart_with_selected_frame.png b/packages/devtools_app/test/goldens/timeline_flame_chart_with_selected_frame.png
index 06022e1..5bcb780 100644
--- a/packages/devtools_app/test/goldens/timeline_flame_chart_with_selected_frame.png
+++ b/packages/devtools_app/test/goldens/timeline_flame_chart_with_selected_frame.png
Binary files differ
diff --git a/packages/devtools_app/test/split_test.dart b/packages/devtools_app/test/split_test.dart
index ce5dcc9..61a9bbd 100644
--- a/packages/devtools_app/test/split_test.dart
+++ b/packages/devtools_app/test/split_test.dart
@@ -23,11 +23,11 @@
expect(find.byKey(_k2), findsOneWidget);
expect(find.byKey(split.dividerKey(0)), findsOneWidget);
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(197.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(194.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(592.5, 600));
+ tester.element(find.byKey(_k2)).size, const Size(582.0, 600));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(10, 600));
+ const Size(24, 24));
});
testWidgets('with 50% space to first child', (WidgetTester tester) async {
@@ -37,11 +37,11 @@
);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(395, 600));
+ tester.element(find.byKey(_k1)).size, const Size(388, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(395, 600));
+ tester.element(find.byKey(_k2)).size, const Size(388, 600));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(10, 600));
+ const Size(24, 24));
});
testWidgets('with 75% space to first child', (WidgetTester tester) async {
@@ -51,11 +51,11 @@
);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(592.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(582.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(197.5, 600));
+ tester.element(find.byKey(_k2)).size, const Size(194.0, 600));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(10, 600));
+ const Size(24, 24));
});
testWidgets('with 0% space to first child', (WidgetTester tester) async {
@@ -67,9 +67,9 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(790, 600));
+ tester.element(find.byKey(_k2)).size, const Size(776, 600));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(10, 600));
+ const Size(24, 24));
});
testWidgets('with 100% space to first child',
@@ -83,11 +83,11 @@
expect(find.byKey(_k2), findsOneWidget);
expect(find.byKey(split.dividerKey(0)), findsOneWidget);
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(790, 600));
+ tester.element(find.byKey(_k1)).size, const Size(776, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 600));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(10, 600));
+ const Size(24, 24));
});
testWidgets('with n children', (WidgetTester tester) async {
@@ -98,11 +98,11 @@
);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(156, 600));
+ tester.element(find.byKey(_k1)).size, const Size(150.4, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(312, 600));
+ tester.element(find.byKey(_k2)).size, const Size(300.8, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(312, 600));
+ tester.element(find.byKey(_k3)).size, const Size(300.8, 600));
});
testWidgets('with custom splitters', (WidgetTester tester) async {
@@ -131,11 +131,11 @@
);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(260, 600));
+ tester.element(find.byKey(_k1)).size, const Size(250.666416, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(260, 600));
+ tester.element(find.byKey(_k2)).size, const Size(250.666416, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(260, 600));
+ tester.element(find.byKey(_k3)).size, const Size(250.666416, 600));
});
});
@@ -147,29 +147,29 @@
expect(find.byKey(_k2), findsOneWidget);
expect(find.byKey(split.dividerKey(0)), findsOneWidget);
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 147.5));
+ tester.element(find.byKey(_k1)).size, const Size(800, 144.0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 442.5));
+ tester.element(find.byKey(_k2)).size, const Size(800, 432.0));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(800, 10));
+ const Size(24, 24));
});
testWidgets('with 50% space to first child', (WidgetTester tester) async {
final split = buildSplit(Axis.vertical, initialFractions: [0.5, 0.5]);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 295));
+ tester.element(find.byKey(_k1)).size, const Size(800, 288));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 295));
+ tester.element(find.byKey(_k2)).size, const Size(800, 288));
});
testWidgets('with 75% space to first child', (WidgetTester tester) async {
final split = buildSplit(Axis.vertical, initialFractions: [0.75, 0.25]);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 442.5));
+ tester.element(find.byKey(_k1)).size, const Size(800, 432.0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 147.5));
+ tester.element(find.byKey(_k2)).size, const Size(800, 144.0));
});
testWidgets('with 0% space to first child', (WidgetTester tester) async {
@@ -181,9 +181,9 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(800, 0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 590));
+ tester.element(find.byKey(_k2)).size, const Size(800, 576));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(800, 10));
+ const Size(24, 24));
});
testWidgets('with 100% space to first child',
@@ -194,11 +194,11 @@
expect(find.byKey(_k2), findsOneWidget);
expect(find.byKey(split.dividerKey(0)), findsOneWidget);
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 590));
+ tester.element(find.byKey(_k1)).size, const Size(800, 576));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(800, 0));
expectEqualSizes(tester.element(find.byKey(split.dividerKey(0))).size,
- const Size(800, 10));
+ const Size(24, 24));
});
testWidgets('with n children', (WidgetTester tester) async {
@@ -209,11 +209,11 @@
);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 116));
+ tester.element(find.byKey(_k1)).size, const Size(800, 110.4));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 232));
+ tester.element(find.byKey(_k2)).size, const Size(800, 220.8));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(800, 232));
+ tester.element(find.byKey(_k3)).size, const Size(800, 220.8));
});
testWidgets('with custom splitters', (WidgetTester tester) async {
@@ -241,12 +241,12 @@
initialFractions: [oneThird, oneThird, oneThird],
);
await tester.pumpWidget(wrap(split));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 193.3333));
- expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 193.3333));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(800, 193.3333));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(800, 183.99981599999998));
+ expectEqualSizes(tester.element(find.byKey(_k2)).size,
+ const Size(800, 183.99981599999998));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(800, 183.99981599999998));
});
});
@@ -257,34 +257,34 @@
// We start at 0.5 size.
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(395, 600));
+ tester.element(find.byKey(_k1)).size, const Size(388.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(395, 600));
+ tester.element(find.byKey(_k2)).size, const Size(388.0, 600));
// Drag to 0.75 first child size.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(200, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(592.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(582.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(197.5, 600));
+ tester.element(find.byKey(_k2)).size, const Size(194.0, 600));
// Drag to 0.25 first child size.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(-400, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(197.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(194.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(592.5, 600));
+ tester.element(find.byKey(_k2)).size, const Size(582.0, 600));
// Drag past the right end of the widget.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(600, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(790, 600));
+ tester.element(find.byKey(_k1)).size, const Size(776, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 600));
@@ -293,7 +293,7 @@
find.byKey(split.dividerKey(0)), const Offset(200, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(790, 600));
+ tester.element(find.byKey(_k1)).size, const Size(776, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 600));
@@ -304,7 +304,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(790, 600));
+ tester.element(find.byKey(_k2)).size, const Size(776, 600));
// Make sure we can't overdrag.
await tester.drag(
@@ -313,7 +313,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(790, 600));
+ tester.element(find.byKey(_k2)).size, const Size(776, 600));
});
testWidgets('with vertical layout', (WidgetTester tester) async {
@@ -322,34 +322,34 @@
// We start at 0.5 size.
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 295));
+ tester.element(find.byKey(_k1)).size, const Size(800, 288.0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 295));
+ tester.element(find.byKey(_k2)).size, const Size(800, 288.0));
// Drag to 0.75 first child size.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(0, 150));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 442.5));
+ tester.element(find.byKey(_k1)).size, const Size(800, 432.0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 147.5));
+ tester.element(find.byKey(_k2)).size, const Size(800, 144.0));
// Drag to 0.25 first child size.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(0, -300));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 147.5));
+ tester.element(find.byKey(_k1)).size, const Size(800, 144.0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 442.5));
+ tester.element(find.byKey(_k2)).size, const Size(800, 432.0));
// Drag past the right end of the widget.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(0, 450));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 590));
+ tester.element(find.byKey(_k1)).size, const Size(800, 576));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(800, 0));
@@ -358,7 +358,7 @@
find.byKey(split.dividerKey(0)), const Offset(0, 200));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(800, 590));
+ tester.element(find.byKey(_k1)).size, const Size(800, 576));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(800, 0));
@@ -369,7 +369,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(800, 0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 590));
+ tester.element(find.byKey(_k2)).size, const Size(800, 576));
// Make sure we can't overdrag.
await tester.drag(
@@ -378,7 +378,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(800, 0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(800, 590));
+ tester.element(find.byKey(_k2)).size, const Size(800, 576));
});
testWidgets('with n children', (WidgetTester tester) async {
@@ -391,22 +391,22 @@
// We start at initial size.
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(156, 600));
+ tester.element(find.byKey(_k1)).size, const Size(150.4, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(312, 600));
+ tester.element(find.byKey(_k2)).size, const Size(300.8, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(312, 600));
+ tester.element(find.byKey(_k3)).size, const Size(300.8, 600));
// Drag first splitter to 0.1 first child size.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(-80, 0));
await tester.pumpAndSettle();
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(75.20000000000002, 600));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(78, 600));
+ tester.element(find.byKey(_k2)).size, const Size(376.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(390, 600));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(312, 600));
+ tester.element(find.byKey(_k3)).size, const Size(300.8, 600));
// Drag first splitter to the left end of the widget.
await tester.drag(
@@ -415,9 +415,9 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(468, 600));
+ tester.element(find.byKey(_k2)).size, const Size(451.2, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(312, 600));
+ tester.element(find.byKey(_k3)).size, const Size(300.8, 600));
// Make sure we can't overdrag.
await tester.drag(
@@ -426,40 +426,40 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(468, 600));
+ tester.element(find.byKey(_k2)).size, const Size(451.2, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(312, 600));
+ tester.element(find.byKey(_k3)).size, const Size(300.8, 600));
// Drag first splitter to second splitter.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(480, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(468, 600));
+ tester.element(find.byKey(_k1)).size, const Size(451.2, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(312, 600));
+ tester.element(find.byKey(_k3)).size, const Size(300.8, 600));
// Drag second splitter past first splitter.
await tester.drag(
find.byKey(split.dividerKey(1)), const Offset(-100, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(370.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(357.2, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(409.5, 600));
+ tester.element(find.byKey(_k3)).size, const Size(394.8, 600));
// Drag second splitter to the right end of the widget.
await tester.drag(
find.byKey(split.dividerKey(1)), const Offset(420, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(370.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(357.2, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(409.5, 600));
+ tester.element(find.byKey(_k2)).size, const Size(394.8, 600));
expectEqualSizes(
tester.element(find.byKey(_k3)).size, const Size(0, 600));
@@ -468,9 +468,9 @@
find.byKey(split.dividerKey(1)), const Offset(200, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(370.5, 600));
+ tester.element(find.byKey(_k1)).size, const Size(357.2, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(409.5, 600));
+ tester.element(find.byKey(_k2)).size, const Size(394.8, 600));
expectEqualSizes(
tester.element(find.byKey(_k3)).size, const Size(0, 600));
});
@@ -483,9 +483,9 @@
);
await tester.pumpWidget(wrap(split));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(395, 600));
+ tester.element(find.byKey(_k1)).size, const Size(388.0, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(395, 600));
+ tester.element(find.byKey(_k2)).size, const Size(388.0, 600));
// Drag splitter to the left end of the widget.
await tester.drag(
@@ -494,7 +494,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(100, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(690, 600));
+ tester.element(find.byKey(_k2)).size, const Size(676.0, 600));
// Make sure we can't overdrag.
await tester.drag(
@@ -503,14 +503,14 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(100, 600));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(690, 600));
+ tester.element(find.byKey(_k2)).size, const Size(676.0, 600));
// Drag splitter to the right end of the widget.
await tester.drag(
find.byKey(split.dividerKey(0)), const Offset(597.5, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(690, 600));
+ tester.element(find.byKey(_k1)).size, const Size(676.0, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(100, 600));
@@ -519,7 +519,7 @@
find.byKey(split.dividerKey(0)), const Offset(200, 0));
await tester.pumpAndSettle();
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(690, 600));
+ tester.element(find.byKey(_k1)).size, const Size(676.0, 600));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(100, 600));
});
@@ -536,7 +536,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 300));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(290, 300));
+ tester.element(find.byKey(_k2)).size, const Size(276, 300));
await tester.pumpWidget(wrap(
Center(
@@ -546,7 +546,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(0, 200));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(190, 200));
+ tester.element(find.byKey(_k2)).size, const Size(176, 200));
});
testWidgets('in a horizontal layout with n children',
@@ -562,23 +562,23 @@
),
));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(76, 400));
+ tester.element(find.byKey(_k1)).size, const Size(70.4, 400));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(152, 400));
+ tester.element(find.byKey(_k2)).size, const Size(140.8, 400));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(152, 400));
+ tester.element(find.byKey(_k3)).size, const Size(140.8, 400));
await tester.pumpWidget(wrap(
Center(
child: SizedBox(width: 200.0, height: 200.0, child: split),
),
));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(36, 200));
- expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(72, 200));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(72, 200));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(30.400000000000002, 200));
+ expectEqualSizes(tester.element(find.byKey(_k2)).size,
+ const Size(60.800000000000004, 200));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(60.800000000000004, 200));
});
testWidgets('with violated minsize constraints',
@@ -594,8 +594,8 @@
));
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(100, 400));
- expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(180, 400));
+ expectEqualSizes(tester.element(find.byKey(_k2)).size,
+ const Size(151.99999999999997, 400));
expectEqualSizes(
tester.element(find.byKey(_k3)).size, const Size(100, 400));
@@ -605,11 +605,11 @@
),
));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(100.0, 200));
+ tester.element(find.byKey(_k1)).size, const Size(91.0, 200));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(10, 200));
+ tester.element(find.byKey(_k2)).size, const Size(0.0, 200));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(100, 200));
+ tester.element(find.byKey(_k3)).size, const Size(91.0, 200));
// It would be nice if we restored the size of w2 in this case but the
// logic is simpler if we don't as this way the layout calculation can
@@ -621,11 +621,11 @@
),
));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(180.952380, 400));
+ tester.element(find.byKey(_k1)).size, const Size(176.0, 400));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(18.0952, 400));
+ tester.element(find.byKey(_k2)).size, const Size(0.0, 400));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(180.952380, 400));
+ tester.element(find.byKey(_k3)).size, const Size(176.0, 400));
});
testWidgets('with impossible minsize constraints',
@@ -639,24 +639,24 @@
child: SizedBox(width: 400.0, height: 400.0, child: split),
),
));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(126.666666, 400));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(117.33333333333333, 400));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 400));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(253.33333, 400));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(234.66666666666666, 400));
await tester.pumpWidget(wrap(
Center(
child: SizedBox(width: 200.0, height: 200.0, child: split),
),
));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(60.0, 200));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(50.666666666666664, 200));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 200));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(120, 200));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(101.33333333333333, 200));
// Min size constraints still violated but not violated by as much.
await tester.pumpWidget(wrap(
@@ -664,12 +664,12 @@
child: SizedBox(width: 400.0, height: 400.0, child: split),
),
));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(126.666666, 400));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(117.33333333333333, 400));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 400));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(253.33333, 400));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(234.66666666666666, 400));
// Min size constraints are now satisfied.
await tester.pumpWidget(wrap(
@@ -677,12 +677,12 @@
child: SizedBox(width: 800.0, height: 400.0, child: split),
),
));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(260, 400));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(250.66666666666666, 400));
expectEqualSizes(
tester.element(find.byKey(_k2)).size, const Size(0, 400));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(520, 400));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(501.3333333333333, 400));
});
testWidgets('in a vertical layout', (WidgetTester tester) async {
@@ -695,7 +695,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(300, 0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(300, 290));
+ tester.element(find.byKey(_k2)).size, const Size(300, 276.0));
await tester.pumpWidget(wrap(
Center(
@@ -705,7 +705,7 @@
expectEqualSizes(
tester.element(find.byKey(_k1)).size, const Size(200, 0));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(200, 190));
+ tester.element(find.byKey(_k2)).size, const Size(200, 176));
});
testWidgets('in a vertical layout with n children',
@@ -721,23 +721,23 @@
),
));
expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(400, 76));
+ tester.element(find.byKey(_k1)).size, const Size(400, 70.4));
expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(400, 152));
+ tester.element(find.byKey(_k2)).size, const Size(400, 140.8));
expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(400, 152));
+ tester.element(find.byKey(_k3)).size, const Size(400, 140.8));
await tester.pumpWidget(wrap(
Center(
child: SizedBox(width: 200.0, height: 200.0, child: split),
),
));
- expectEqualSizes(
- tester.element(find.byKey(_k1)).size, const Size(200, 36));
- expectEqualSizes(
- tester.element(find.byKey(_k2)).size, const Size(200, 72));
- expectEqualSizes(
- tester.element(find.byKey(_k3)).size, const Size(200, 72));
+ expectEqualSizes(tester.element(find.byKey(_k1)).size,
+ const Size(200, 30.400000000000002));
+ expectEqualSizes(tester.element(find.byKey(_k2)).size,
+ const Size(200, 60.800000000000004));
+ expectEqualSizes(tester.element(find.byKey(_k3)).size,
+ const Size(200, 60.800000000000004));
});
});