avatar_stack
설정이 있는 고급이고 유연한 아바타 스택입니다. 작은 공간에 많은 아바타 또는 다른 위젯을 배치할 수 있습니다.
cyrax111/avatar_stack open-source repository details.
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
Avatar stack is used to visually represent users, places, and things in a limited space.
Try Live Demo :-)
import 'package:avatar_stack/animated_avatar_stack.dart';
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(
home: Scaffold(
body: Center(
child: AnimatedAvatarStack(
height: 50,
avatars: [
for (var n = 0; n < 15; n++) NetworkImage('https://i.pravatar.cc/150?img=$n'),
],
),
),
),
));
Usually the stack avatar shows all items as possible but you can restrict it by, say, five items.
By default the stack avatar has left alignment one can change it.
You can set how avatars will coverage each others.
The negative coverage will set space between items.
You can use any widget to stack not only avatars
The additional space between an info item (if exists) and other items.
The way to tile items.
One can use any widget for stacking. Apply WidgetStack widget for that. For example:
import 'package:avatar_stack/avatar_stack.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: Example7WidgetStack()));
}
class Example7WidgetStack extends StatelessWidget {
const Example7WidgetStack({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final settings = RestrictedPositions(
maxCoverage: -0.1,
minCoverage: -0.5,
align: StackAlign.right,
);
return Column(
children: [
const Text(
'Any widgets for stack:',
),
const SizedBox(height: 10),
SizedBox(
height: 50,
child: WidgetStack(
positions: settings,
stackedWidgets: [
for (var n = 0; n < 12; n++)
FlutterLogo(
style: FlutterLogoStyle.stacked,
textColor: Color(0xFF * 0x1000000 +
n * 10 * 0x10000 +
(0xFF - n * 10) * 0x100),
),
const FittedBox(
fit: BoxFit.fitHeight,
child: Text('A',
style: TextStyle(height: 0.9, color: Colors.orange))),
const FittedBox(
fit: BoxFit.fitHeight,
child: Text('B', style: TextStyle(height: 0.9))),
const FittedBox(
fit: BoxFit.fitHeight,
child: Text('C',
style: TextStyle(height: 0.9, color: Colors.green))),
],
buildInfoWidget: (surplus) {
return Center(
child: Text(
'+$surplus',
style: Theme.of(context).textTheme.headline5,
));
},
),
),
],
);
}
}
You can also use the example from github https://github.com/cyrax111/avatar_stack/tree/master/example
If you have any ideas on how to enhance this package or have any concern, feel free to make an issue.
의존성 목록 3 개
{"sdk":"flutter"}{"sdk":"flutter"}^5.0.0사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗