Reputation: 411
I want to create a widget similar to CircleAvatar, but not rounded. This is CircleAvatar:
And this is the avatar I want to create:
I want to know if there is a default widget to do this, as CircleAvatar for rounded avatars.
Upvotes: 7
Views: 16978
Reputation: 1220
You can use the combination of ClipRRect and Container Widget to achieve the same, use the above code given.
import 'package:flutter/material.dart';
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(
scaffoldBackgroundColor: darkBlue,
),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ClipRRect(
borderRadius: BorderRadius.circular(15.0),//or 15.0
child: Container(
height: 70.0,
width: 70.0,
color: const Color(0xffFF0E58),
child: const Icon(Icons.volume_up, color: Colors.white, size: 50.0),
),
);
}
}
Upvotes: 2
Reputation: 201
There are so many ways to achieve it but I will only make use one.
Wrap a ClipRRect() widget around a child widget(this could be an image or any other relevant widget like a Container used in my example). Then, pass BorderRadius.circular(20.0)
value to borderRadius
property of ClipRRect(). That is the active lines of code that create the effect.
Check below for my example:
ClipRRect(
borderRadius: BorderRadius.circular(20.0),//or 15.0
child: Container(
height: 70.0,
width: 70.0,
color: Color(0xffFF0E58),
child: Icon(Icons.volume_up, color: Colors.white, size: 50.0),
),
),
Upvotes: 20
Reputation: 1914
You can use ClipRRect
with specified BorderRadius
property like this:
ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(10.0)),//add border radius here
child: Image.asset('assets/01.jpg'),//add image location here
),
Upvotes: 1