Gọi thẳng Button.new() thì phần đệm, chiều cao và cách xuống dòng sẽ lệch nhau chút ít giữa các
màn hình. Chỗ lệch đó vô hình khi review code và lộ rõ trong một tấm ảnh chụp màn hình.
| Nhóm | Hàm |
|---|---|
| Cấu trúc | column row wrap_row padding spacer divider responsive_grid aspect foldable |
| Văn bản | label label_key line section typography |
| Nút | button button_key icon_button list_button list_row apply_icon style_choice_card style_chip_button style_chip_label |
| Nhập liệu | line_edit textarea toggle checkbox slider picker select dropdown radio_group segmented choice_grid |
| Hiển thị | card chip hud_panel chip_panel avatar skeleton alert table tabs breadcrumb progress empty_state |
| Mảnh của lớp nổi | surface box floating disc face_padding |
| Tiện ích | form fit_words natural_width tooltip_node card_body let_input_through |
box() luôn trả về một StyleBoxFlat, vì phía gọi nhận nó rồi
chỉnh bg_color hoặc corner_radius. Hãy dùng surface() khi cần giữ
nguyên một hình dáng tùy biến.
Hàng danh sách có dòng mô tả
GoStyle.list_button(GoIconSet.SWORD, "Kiếm Thề Nguyện", _inspect, Color.TRANSPARENT,
"Trường kiếm / Tấn công 42", false)
Một hàng có dòng thứ hai được cấp phần đệm trên và dưới bằng nhau, rộng rãi hơn hàng một dòng, và cặp tiêu đề/mô tả luôn canh giữa theo chiều dọc bên cạnh biểu tượng — kể cả khi một container kéo hàng đó cao lên, và cả sau khi dòng mô tả xuống thành nhiều dòng. Cả hàng vẫn là một vùng chạm duy nhất.
medieval_light.Hàng tự xuống dòng
Hãy đặt các control vào wrap_row ở bề rộng tự nhiên của chúng. Nếu cứ để bật xuống dòng, bề rộng
tối thiểu của một cái nút tụt xuống gần như bằng không và hàng lấy đó làm cỡ ô — nhãn co lại thành mỗi dòng một ký tự.
Factory ngăn chuyện này giúp bạn.
Đừng bao giờ để một danh sách rỗng trống trơn
page.add_child(GoStyle.empty_state(GoIconSet.BOX, "Chưa có gì ở đây"))
Người ta đọc một màn hình trắng trơn ra là hỏng.
Hook để kế thừa
Mọi chỗ dựng ra một widget con đều đi qua một phương thức ghi đè được, nên một dự án có kế thừa các kiểu của gohud sẽ đưa được lớp con của mình vào bên trong các widget mà không phải chép code.
| Hook | Widget | Mặc định |
|---|---|---|
_make_scroll() | GoCoachMark, GoSurface | GoScroll.new() |
_make_close_button() | GoPromptCard, GoSurface | GoIconButton.new() |
_make_surface() | GoSheet, GoDialogs | GoSurface.new() |
_should_pause() | GoCoachMark | Ẩn tấm thẻ trong lúc một cửa sổ modal đang mở |