based_avatar 1.0.3 based_avatar: ^1.0.3 copied to clipboard
A Based Widget For Building More Useful Avatar
import 'package:flutter/material.dart';
import 'package:based_avatar/based_avatar.dart';
import 'package:based_list/based_list.dart';
void main() {
runApp(const MainApp());
}
class MainApp extends StatefulWidget {
const MainApp({super.key});
@override
State<MainApp> createState() => _MainAppState();
}
class _MainAppState extends State<MainApp> {
late bool _isDark = true;
void changeThemeMode() => setState(() => _isDark = !_isDark);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Based Avatar Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.deepPurple,
),
useMaterial3: true,
),
darkTheme: ThemeData(
colorScheme: ColorScheme.fromSeed(
brightness: Brightness.dark,
seedColor: Colors.deepPurple,
),
useMaterial3: true,
),
themeMode: _isDark ? ThemeMode.dark : ThemeMode.light,
home: Scaffold(
appBar: AppBar(
elevation: 1,
title: const Text(
'Based Avatar',
),
actions: [
IconButton(
onPressed: changeThemeMode,
icon: const Icon(
Icons.color_lens_outlined,
),
)
],
),
body: BasedListView(
children: [
BasedListSection(
children: [
const BasedListTile(
leading: BasedAvatar(),
titleText: 'Simple BasedAvatar',
trailingIcon: null,
),
const BasedListTile(
leading: BasedAvatar(
placeholder: Text('RC'),
),
titleText: 'With Placeholder',
trailingIcon: null,
),
const BasedListTile(
leading: BasedAvatar(
image: NetworkImage(
'https://docs.flutter.dev/assets/images/dash/dash-fainting.gif',
),
),
titleText: 'With NetworkImage',
trailingIcon: null,
),
const BasedListTile(
leading: BasedAvatar(
image: NetworkImage(
'https://avatars.githubusercontent.com/u/29329988',
),
badge: Badge(backgroundColor: Colors.green),
),
titleText: 'With Customizable Badge',
trailingIcon: null,
),
BasedListTile(
leading: Builder(
builder: (context) {
return BasedAvatar(
onTap: () => ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('onTap')),
),
onDoubleTap: () =>
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('onDoubleTap')),
),
onLongPress: () =>
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('onLongPress')),
),
);
},
),
titleText: 'With Gesture (tap, double tap, long press)',
trailingIcon: null,
),
],
)
],
),
),
);
}
}