Калькулятор чаевых: чаевые
Часть раздела Добавляем интерактивность путешествия по Flutter на Coddy. Урок 31 из 34.
Теперь чаевые. Слайдер Slider от 0 до 30 процентов с шагом 5 позволяет выбрать их размер, а приложение показывает сумму чаевых.
Храни процент чаевых в состоянии как double, начальное значение — 10. Сумму чаевых не нужно хранить: она зависит от счёта и процента, поэтому вычисляй её в начале build как final:
final double tip = _bill * _tipPercent / 100;При каждом вызове setState — из поля или со слайдера — экран строится заново, а значение tip пересчитывается с учётом новых значений.
Задание
Легко- Под суммой счёта покажите
Tip: 10%иSliderот0до30с6делениями, начиная с 10. - Под ползунком покажите
Tip amount: 4.00для счёта в 40 с двумя десятичными знаками.
Попробуйте сами
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
double _bill = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Tip Calculator')),
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
keyboardType: const TextInputType.numberWithOptions(decimal: true),
decoration: const InputDecoration(
labelText: 'Bill',
border: OutlineInputBorder(),
),
onChanged: (String value) {
setState(() {
_bill = double.tryParse(value) ?? 0;
});
},
),
const SizedBox(height: 8),
Text('Bill: ${_bill.toStringAsFixed(2)}'),
],
),
),
);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Добавляем интерактивность
1Кнопки
Ваша первая кнопкаВывод в консольТекстовые и контурные кнопкиКнопки с иконкамиПлавающая кнопка действия7Переключатели и ползунки
Включаем и выключаем переключателемОтмечаем флажокВыбираем значение ползунком5Условия
bool и оператор ? :Условия с if и elseAnd, Or и Not в DartПоказать и скрыть виджетСделать кнопку неактивной8Проект: калькулятор чаевых
Калькулятор чаевых: счётКалькулятор чаевых: чаевыеПотренируйтесь самостоятельно: Онлайн-компилятор Flutter