Bài 3: Triển khai UI màn HomeScreen

Firebase

I.Phân tích giao diện

Nhìn vào giao diện ta có thể tách thành các Widget tổng quan như sau:

Các thành phần giao diện có đè lên nhau, để xây dựng được thì mình dùng Stack Widget

II.Tách các Widget nhỏ

1. Dựng background, widget header, axis

Như trong ảnh ta có hàm build return Container chứa ảnh nền ở dưới cùng, trong Stack chứa lần lượt các Widget: HeaderHomeWidget, HomeHorizontalAxisWidget, HomeVerticalAxisWidget

Sau khi run ta sẽ có giao diện:

2.Danh sách câu hỏi

Tiếp theo là Widget hiển thị danh sách các câu hỏi, trong đó có chứa Widget QuestionMainWidget thể hiện cho 1 câu hỏi.

Danh sách câu hỏi sẽ cách lề trái 50, phải 40, top 90, bottom: 110. Và chúng ta sẽ dùng SliverGrid để hiển thị danh sách có 3 cột:

Trong đó

childCount: đang tạm fake có 11 câu hỏi ứng với 11 Widget con QuestionMainWidget

mainAxisSpacing, crossAxisSpacing: Khoảng cách giữa các QuestionMainWidget theo chiều dọc, ngang.

childAspectRatio: tỉ lệ width/height cho Widget con.

Mỗi thành phần con chúng ta sẽ có 2 trạng thái:

Chúng sẽ chứa: 

Widget QuestionMainWidget chúng ta sẽ hoàn thiện sau khi triển khai đầy đủ logic khi lấy dữ liệu từ BE, kèm theo check điều kiện câu hỏi đã pass. Hiện tại chỉ hiển thị tạm thời với nền, và text.

III.Tổng kết

Ở bài này, chúng ta đã học được cách phân tích giao diện và dựng lên được UI cơ bản. Giao diện hiện tại chưa có dữ liệu thật, ở bài tiếp theo chúng ta sẽ xây tiếp phần kết nối và lấy dữ liệu thật từ BE nhé.