Функции и условия
// Some code
import 'package:flutter/material.dart';
import 'package:lessons_flutter/lesson_variables/onboarding_screen.dart';
class TestAuth extends StatefulWidget {
const TestAuth({super.key});
@override
State<TestAuth> createState() => _TestAuthState();
}
class _TestAuthState extends State<TestAuth> {
final String name = 'Baiastan';
final int age = 18;
final double kg = 56.879;
bool isMarried = true; // true - false - условия
Color color = Colors.black;
IconData icon = Icons.eighteen_mp;
// Во время компиляции - Во время выполнения
final TextEditingController nameCon = TextEditingController();
var car = 'BMW';
var number = 90;
var gram = 78.90;
var isSnow = true;
dynamic weather = 'Sunny';
dynamic numberOne = 89;
final String surname = 'Aitmatov';
static const Color green = Color(0xFF568299);
void test() {
car = 'Mercedes';
weather = 89;
numberOne = 'Baiastan';
weather = true;
}
void show() {
setState(() {});
}
// =, +=, -=, /=, *=
// +, -, /, *
// bool - ==, !=, >, <, >=, <=, is - &&, ||,
String message = '';
TextEditingController ageController = TextEditingController();
void check({required int age}) {
setState(() {
if (age == 18) {
message = 'Ты можешь войти ==';
} else if (age != 18) {
message = 'Ты не можешь войти';
} else if (age >= 18) {
message = 'Ты можешь войти >=';
} else {
message = 'Произошло неизвестная ошибка';
}
});
}
TextEditingController emailController = TextEditingController();
void login() {
setState(() {
if (emailController.text.isEmpty) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Email не может быть пусты')));
} else if (!emailController.text.contains('@')) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Email должен содержать @')));
} else if (emailController.text.length >= 6) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Email должен быть больше 6')));
}
});
}
final _formKey = GlobalKey<FormState>();
TextEditingController emailOneCon = TextEditingController();
void register() {
if (_formKey.currentState!.validate()) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => OnboardingScreen()),
);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Form(
key: _formKey,
child: Column(
children: [
Text(
'$name - ${name.length} - '
'${name.isEmpty} - ${name.isNotEmpty} - '
'${name.runtimeType} - ${name.characters} ${name.toUpperCase()}, ',
style: TextStyle(fontSize: 40),
),
Text(
'$kg - ${kg.isFinite} - ${kg.isInfinite} ',
style: TextStyle(fontSize: 40),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
controller: ageController,
decoration: InputDecoration(border: OutlineInputBorder()),
),
),
Text(
'вывод - $message',
style: TextStyle(fontSize: 40),
),
ElevatedButton(
onPressed: () {
check(age: int.tryParse(ageController.text)!);
},
child: Text('Проверить'),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
controller: emailController,
decoration: InputDecoration(
border: OutlineInputBorder(),
hintText: 'email',
),
),
),
ElevatedButton(
onPressed: () {
login();
},
child: Text('Войти'),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
controller: emailOneCon,
validator: (value) {
if (value!.isEmpty) {
return 'Email не может быть пустым ';
} else if(!value!.contains('@')){
return 'Email должен иметь @';
}
return null;
},
decoration: InputDecoration(
border: OutlineInputBorder(),
hintText: 'email',
),
),
),
ElevatedButton(
onPressed: () {
register();
},
child: Text('Войти'),
),
],
),
),
),
);
}
}Last updated