Commit 3aa26cb1 authored by Dragoș Tiselice's avatar Dragoș Tiselice Committed by GitHub

Merge pull request #4971 from flutter/circle-avatar-background-image

Added backgroundImage to CircleAvatar.
parents 2e1a89cf 83f37246
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'constants.dart';
......@@ -24,7 +25,8 @@ class CircleAvatar extends StatelessWidget {
Key key,
this.child,
this.backgroundColor,
this.radius: 40.0
this.backgroundImage,
this.radius: 20.0
}) : super(key: key);
/// The widget below this widget in the tree.
......@@ -34,6 +36,10 @@ class CircleAvatar extends StatelessWidget {
/// color will cause the avatar to animate to the new color.
final Color backgroundColor;
/// The background image of the circle. Changing the background
/// image will cause the avatar to animate to the new image.
final ImageProvider backgroundImage;
/// The size of the avatar. Changing the radius will cause the
/// avatar to animate to the new size.
final double radius;
......@@ -44,11 +50,14 @@ class CircleAvatar extends StatelessWidget {
final Color color = backgroundColor ?? theme.primaryColor;
return new AnimatedContainer(
width: radius,
height: radius,
width: radius * 2.0,
height: radius * 2.0,
duration: kThemeChangeDuration,
decoration: new BoxDecoration(
backgroundColor: color,
backgroundImage: backgroundImage != null ? new BackgroundImage(
image: backgroundImage
) : null,
shape: BoxShape.circle
),
child: new Center(
......
// Copyright 2016 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/material.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('CircleAvatar test', (WidgetTester tester) async {
await tester.pumpWidget(
new Center(
child: new CircleAvatar(
backgroundColor: Colors.blue[400],
radius: 50.0,
child: new Text('Z')
)
)
);
RenderBox box = tester.renderObject(find.byType(CircleAvatar));
expect(box.size.width, equals(100.0));
expect(box.size.height, equals(100.0));
expect(find.text('Z'), findsOneWidget);
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment