mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Also, some trivial fixes for things that I found while playing with the rendering library directly.
97 lines
3.7 KiB
Dart
97 lines
3.7 KiB
Dart
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter/rendering.dart';
|
|
|
|
const List<BoxShadow> shadow = const <BoxShadow>[
|
|
const BoxShadow(offset: const Offset(0.0, 3.0), blurRadius: 1.0, spreadRadius: -2.0, color: const Color(0x33000000)),
|
|
const BoxShadow(offset: const Offset(0.0, 2.0), blurRadius: 2.0, spreadRadius: 0.0, color: const Color(0x24000000)),
|
|
const BoxShadow(offset: const Offset(0.0, 1.0), blurRadius: 5.0, spreadRadius: 0.0, color: const Color(0x1F000000)),
|
|
];
|
|
|
|
void main() {
|
|
RenderDecoratedBox box1, box2, box3;
|
|
new RenderingFlutterBinding(root: new RenderPadding(
|
|
padding: const EdgeDims.all(40.0),
|
|
child: new RenderViewport(
|
|
child: new RenderDecoratedBox(
|
|
decoration: const BoxDecoration(
|
|
backgroundColor: const Color(0xFFFFFFFF)
|
|
),
|
|
child: new RenderBlock(
|
|
children: <RenderBox>[
|
|
new RenderPadding(
|
|
padding: const EdgeDims.all(40.0),
|
|
child: new RenderPointerListener(
|
|
behavior: HitTestBehavior.opaque,
|
|
onPointerDown: (PointerDownEvent event) {
|
|
box1.decoration = const BoxDecoration(
|
|
gradient: const RadialGradient(
|
|
center: Point.origin, radius: 500.0,
|
|
colors: const <Color>[const Color(0x20F0D0B0), const Color(0xD0C0FFFF)]
|
|
),
|
|
borderRadius: 20.0
|
|
);
|
|
RenderPadding innerBox1 = box1.child;
|
|
innerBox1.padding *= 1.5;
|
|
innerBox1.child = new RenderParagraph(
|
|
const StyledTextSpan(
|
|
const TextStyle(
|
|
color: const Color(0xFF000000),
|
|
fontSize: 20.0,
|
|
fontWeight: FontWeight.w900,
|
|
textAlign: TextAlign.center
|
|
),
|
|
const <TextSpan>[ const PlainTextSpan('Hello World!') ]
|
|
)
|
|
);
|
|
RenderBlock block = box3.parent.parent;
|
|
block.remove(box3.parent);
|
|
RenderPadding innerBox2 = box2.child;
|
|
innerBox2.child = box3.parent;
|
|
RenderPointerListener listener = box1.parent;
|
|
listener.onPointerDown = null;
|
|
},
|
|
child: box1 = new RenderDecoratedBox(
|
|
decoration: const BoxDecoration(
|
|
backgroundColor: const Color(0xFFFFFF00),
|
|
boxShadow: shadow
|
|
),
|
|
child: new RenderPadding(
|
|
padding: const EdgeDims.all(40.0)
|
|
)
|
|
)
|
|
)
|
|
),
|
|
new RenderPadding(
|
|
padding: const EdgeDims.all(40.0),
|
|
child: box2 = new RenderDecoratedBox(
|
|
decoration: const BoxDecoration(
|
|
backgroundColor: const Color(0xFF00FFFF),
|
|
boxShadow: shadow
|
|
),
|
|
child: new RenderPadding(
|
|
padding: const EdgeDims.all(40.0)
|
|
)
|
|
)
|
|
),
|
|
new RenderPadding(
|
|
padding: const EdgeDims.all(40.0),
|
|
child: box3 = new RenderDecoratedBox(
|
|
decoration: const BoxDecoration(
|
|
backgroundColor: const Color(0xFF33FF33),
|
|
boxShadow: shadow
|
|
),
|
|
child: new RenderPadding(
|
|
padding: const EdgeDims.all(40.0)
|
|
)
|
|
)
|
|
),
|
|
]
|
|
)
|
|
)
|
|
)
|
|
));
|
|
}
|