пять примеров использования оператора if
в Flutter с использованием StatefulWidget
, от простого к более сложному.
1. Простой пример: Проверка на четное число
В этом примере мы проверяем, является ли введенное число четным или нечетным.
Copy import 'package:flutter/material.dart';
class EvenOddCheckExample extends StatefulWidget {
@override
_EvenOddCheckExampleState createState() => _EvenOddCheckExampleState();
}
class _EvenOddCheckExampleState extends State<EvenOddCheckExample> {
int _number = 4; // Можно менять значение
String _checkEvenOdd() {
if (_number % 2 == 0) {
return "Число четное";
} else {
return "Число нечетное";
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Проверка на четность")),
body: Center(
child: Text(
_checkEvenOdd(),
style: TextStyle(fontSize: 24),
),
),
);
}
}
2. Пример: Проверка возраста
В этом примере мы проверяем, является ли пользователь совершеннолетним.
Copy import 'package:flutter/material.dart';
class AgeCheckExample extends StatefulWidget {
@override
_AgeCheckExampleState createState() => _AgeCheckExampleState();
}
class _AgeCheckExampleState extends State<AgeCheckExample> {
int _age = 20; // Можно менять значение
String _checkAge() {
if (_age >= 18) {
return "Вы совершеннолетний.";
} else {
return "Вы несовершеннолетний.";
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Проверка возраста")),
body: Center(
child: Text(
_checkAge(),
style: TextStyle(fontSize: 24),
),
),
);
}
}
3. Пример: Проверка оценки
В этом примере мы создаем приложение, которое позволяет пользователю ввести оценку, и на основе этой оценки выводится соответствующее сообщение о результатах.
Copy import 'package:flutter/material.dart';
class GradeCheckExample extends StatefulWidget {
@override
_GradeCheckExampleState createState() => _GradeCheckExampleState();
}
class _GradeCheckExampleState extends State<GradeCheckExample> {
final TextEditingController _controller = TextEditingController();
String _resultMessage = "";
void _checkGrade() {
// Получаем значение оценки из текстового поля
int grade = int.tryParse(_controller.text) ?? 0;
// Проверяем оценку и устанавливаем соответствующее сообщение
if (grade >= 90) {
_resultMessage = "Отлично!";
} else if (grade >= 75) {
_resultMessage = "Хорошо!";
} else if (grade >= 60) {
_resultMessage = "Удовлетворительно.";
} else {
_resultMessage = "Неудовлетворительно.";
}
// Обновляем состояние виджета
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Проверка оценки")),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextField(
controller: _controller,
decoration: InputDecoration(labelText: "Введите вашу оценку"),
keyboardType: TextInputType.number,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _checkGrade,
child: Text("Проверить оценку"),
),
SizedBox(height: 20),
Text(
_resultMessage,
style: TextStyle(fontSize: 24),
),
],
),
),
);
}
4. Пример: Проверка значения и вывод сообщения
В этом примере мы проверяем значение переменной и выводим разные сообщения в зависимости от ее значения.
Copy import 'package:flutter/material.dart';
class ValueCheckExample extends StatefulWidget {
@override
_ValueCheckExampleState createState() => _ValueCheckExampleState();
}
class _ValueCheckExampleState extends State<ValueCheckExample> {
String _status = "active"; // Можно менять значение на "inactive" или "unknown"
String _checkStatus() {
if (_status == "active") {
return "Статус: Активный";
} else if (_status == "inactive") {
return "Статус: Неактивный";
} else {
return "Статус: Неизвестен";
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Проверка значения")),
body: Center(
child: Text(
_checkStatus(),
style: TextStyle(fontSize: 24),
),
),
);
}
}
5. Пример: Проверка пароля
В этом примере мы проверяем, соответствует ли введенный пароль заранее заданному значению.
Copy import 'package:flutter/material.dart';
class PasswordCheckExample extends StatefulWidget {
@override
_PasswordCheckExampleState createState() => _PasswordCheckExampleState();
}
class _PasswordCheckExampleState extends State<PasswordCheckExample> {
final TextEditingController _controller = TextEditingController();
String _message = "";
void _checkPassword() {
if (_controller.text == "flutter123") {
setState(() {
_message = "Пароль правильный!";
});
} else {
setState(() {
_message = "Пароль неверный!";
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Проверка пароля")),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextField(
controller: _controller,
decoration: InputDecoration(labelText: "Введите пароль"),
obscureText: true,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _checkPassword,
child: Text("Проверить пароль"),
),
SizedBox(height: 20),
Text(
_message,
style: TextStyle(fontSize: 24),
),
],
),
),
);
}
}
Заключение
Эти примеры показывают, как использовать оператор if
в Flutter с StatefulWidget
для управления логикой приложения в зависимости от различных условий. Вы можете адаптировать эти примеры для создания более сложных интерактивных интерфейсов.
Last updated 6 months ago