sliver_utils.dart 1.12 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Test sliver which always attempts to paint itself whether it is visible or not.
// Use for checking if slivers which take sliver children paints optimally.
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

class RenderMockSliverToBoxAdapter extends RenderSliverToBoxAdapter {
  RenderMockSliverToBoxAdapter({
    super.child,
    required this.incrementCounter,
  });
  final void Function() incrementCounter;

  @override
  void paint(PaintingContext context, Offset offset) {
    incrementCounter();
  }
}

class MockSliverToBoxAdapter extends SingleChildRenderObjectWidget {
  /// Creates a sliver that contains a single box widget.
  const MockSliverToBoxAdapter({
    super.key,
    super.child,
    required this.incrementCounter,
  });

  final void Function() incrementCounter;

  @override
  RenderMockSliverToBoxAdapter createRenderObject(BuildContext context) =>
    RenderMockSliverToBoxAdapter(incrementCounter: incrementCounter);
}