aman-kassa-flutter/lib/widgets/components/calculator/number-display.dart

58 lines
1.6 KiB
Dart

import 'dart:math';
import 'package:flutter/material.dart';
import 'package:auto_size_text/auto_size_text.dart';
class NumberDisplay extends StatelessWidget {
NumberDisplay({this.value: ''});
final String value;
GlobalKey stickyKey = GlobalKey();
@override
Widget build(BuildContext context) {
return Expanded(
child: Padding(
padding: const EdgeInsets.only(left: 20.0, right: 20.0, top: 20.0),
child: Container(
key: stickyKey,
alignment: Alignment.topLeft,
child: AutoSizeText(
value,
style: TextStyle(fontSize: 40),
),
// child: AnimatedDefaultTextStyle(
// duration: const Duration(milliseconds: 200),
// style: TextStyle(
// fontSize: fontSizeCalc(value: value),
// fontWeight: FontWeight.bold,
// color: Colors.black,
// ),
// child: Text(
// value,
// ),
// ),
)),
);
}
double fontSizeCalc({String value = " ", context}) {
const double result = 40.0;
try {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
double global = width * height / 2;
double scale = (global / value.length);
final pixelOfLetter = sqrt(scale);
final pixelOfLetterP = pixelOfLetter - (pixelOfLetter * 7) / 100;
if (pixelOfLetterP > result) {
return result;
}
return pixelOfLetterP;
} catch (e) {
return result;
}
}
}