CustomLayout
snippet.packages.flutter.lib.src.rendering.custom_layout.71.
// ignore_for_file: directives_ordering
// ignore_for_file: unnecessary_import
// ignore_for_file: unused_import
// ignore_for_file: unused_element
// ignore_for_file: unused_local_variable
import 'dart:async';
import 'dart:convert';
import 'dart:math' as math;
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/semantics.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/animation.dart';
import 'package:flutter/services.dart';
// From: packages/flutter/lib/src/rendering/custom_layout.dart:71
enum _Slot {
leader,
follower,
}
class FollowTheLeader extends MultiChildLayoutDelegate {
@override
void performLayout(Size size) {
Size leaderSize = Size.zero;
if (hasChild(_Slot.leader)) {
leaderSize = layoutChild(_Slot.leader, BoxConstraints.loose(size));
positionChild(_Slot.leader, Offset.zero);
}
if (hasChild(_Slot.follower)) {
layoutChild(_Slot.follower, BoxConstraints.tight(leaderSize));
positionChild(_Slot.follower, Offset(size.width - leaderSize.width,
size.height - leaderSize.height));
}
}
@override
bool shouldRelayout(MultiChildLayoutDelegate oldDelegate) => false;
}
SHARE: