Fladder/lib/widgets/navigation_scaffold/components/adaptive_fab.dart
2024-09-20 10:01:13 +02:00

50 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
class AdaptiveFab {
final BuildContext context;
final String title;
final Widget child;
final Function() onPressed;
final Key? key;
AdaptiveFab({
required this.context,
this.title = '',
required this.child,
required this.onPressed,
this.key,
});
FloatingActionButton get normal {
return FloatingActionButton(
key: key,
onPressed: onPressed,
tooltip: title,
child: child,
);
}
Widget get extended {
return AnimatedContainer(
key: key,
duration: const Duration(milliseconds: 250),
height: 60,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 4),
child: ElevatedButton(
onPressed: onPressed,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Row(
children: [
child,
const Spacer(),
Flexible(child: Text(title)),
const Spacer(),
],
),
),
),
),
);
}
}