Badge.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'package:flutter/material.dart';
  2. // 提示信息, 组件右上角的小红点
  3. class Badged extends StatelessWidget {
  4. final String? badge;
  5. final Widget child;
  6. const Badged({Key? key, required this.child, this.badge}) : super(key: key);
  7. @override
  8. Widget build(BuildContext context) {
  9. if (badge == null) {
  10. return child;
  11. }
  12. return Stack(
  13. children: [
  14. child,
  15. Positioned(
  16. right: 0,
  17. child: Container(
  18. padding: const EdgeInsets.all(1),
  19. decoration: BoxDecoration(
  20. color: Colors.red,
  21. borderRadius: BorderRadius.circular(6),
  22. ),
  23. constraints: const BoxConstraints(
  24. minWidth: 12,
  25. minHeight: 12,
  26. ),
  27. child: Text(
  28. badge!,
  29. style: const TextStyle(
  30. color: Colors.white,
  31. fontSize: 8,
  32. ),
  33. textAlign: TextAlign.center,
  34. ),
  35. ),
  36. ),
  37. ],
  38. );
  39. }
  40. }