Flutter cơ bản-Thiết kế màn hình hồ sơ cá nhân
Đăng lúc: 10:17 PM - 23/06/2024 bởi Charles Chung - 499Trong bài viết này tôi sẽ hướng dẫn các bạn thiết kế màn hình hồ sơ cá nhân trong Flutter.
1. Yêu cầu
- Thiết kế màn hình như hình mô tả ở trên
- Khi kích vào nút Xem chi tiết thì showDialog hiển thị thông báo như màn hình
2. Màn hình thiết kế
Sau đây là hinh ảnh trực quan thể hiện cấu trúc màn hình với các thành phần Widge.
3. Source code tham khảo
//định nghĩa lớp MyApp kế thừa từ StatelessWidget class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Exercise01-Lab02', home: MyHomePage(title: 'Hồ sơ giảng viên'), debugShowCheckedModeBanner: false, ); } } //định nghĩa lớp MyHomePage kế thừa từ StatelessWidget class MyHomePage extends StatelessWidget { String title; MyHomePage({required this.title}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(title), ), body: SingleChildScrollView( child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox( height: 20, ), Center( child: RichText( text: const TextSpan( style: TextStyle(color: Colors.black,fontSize: 20), children: [ TextSpan(text: 'Xin chào: '), TextSpan( text: 'Charles Chung!', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.blue, fontStyle: FontStyle.italic)), ]), ), ), const SizedBox( height: 20, ), const Center( child: CircleAvatar( backgroundImage: AssetImage('assets/images/charles-chung.jpg'), radius: 120, )), Container( padding: const EdgeInsets.all(20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text('Họ và tên: Lại Đức Chung'), const SizedBox( height: 20, ), const Text('Điện thoại: 0968018161'), const SizedBox( height: 20, ), const Text('Email: chungld@bachkhoa-aptech.edu.vn'), const SizedBox( height: 20, ), const Text('Chuyên ngành: Khoa học máy tính'), const SizedBox( height: 20, ), const Text('Level: 8'), const SizedBox( height: 20, ), const Text('website: https://hanam88.com'), const SizedBox( height: 20, ), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ ElevatedButton( onPressed: () { showMessage(context,'Thông tin chi tiết'); }, child: const Text('Xem chi tiết')), ElevatedButton( onPressed: () { showMessage(context,'Chỉnh sửa hồ sơ'); }, style: ElevatedButton.styleFrom( backgroundColor: Colors.red), child: const Text('Chỉnh sửa hồ sơ'), ), ], ) ], ), ) ]), )); } //định nghĩa hàm showMessage void showMessage(BuildContext context, String msg) { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: Text('Hồ sơ giảng viên'), content: Text(msg), actions: <Widget>[ TextButton( onPressed: () { Navigator.of(context).pop(); }, child: Text('Đóng'), ), ], ); }, ); } }
thay lời cảm ơn!
Các bài cũ hơn
- Flutter cơ bản-Thiết kế các màn hình LogIn-Forgot Password-SignUp trong Flutter (09:05 AM - 22/06/2024)
- Flutter cơ bản-Hiển thị cấu trúc các widget trong Flutter-Android Studio (09:15 AM - 21/06/2024)
- Flutter cơ bản-Hướng dẫn tạo GestureDetector Widget với thao tác di chuyển và phóng to thu nhỏ hình ảnh (09:16 AM - 07/06/2024)
- Flutter cơ bản-Hướng dẫn xây dựng, Validating và Styling cho các Field trên Form trong Flutter (10:18 AM - 06/06/2024)
- Bảo mật phân quyền người dùng trong ứng dụng Web với Spring Boot 3 Security (03:02 PM - 03/06/2024)