Tạo đồng hồ tốc độ đầu tiên
Làm một đồng hồ hiển thị tốc độ và đơn vị. Tìm hiểu cách sử dụng main(), Text và VStack trong tập lệnh đầy đủ, xem trước giao diện và lưu vào trang tổng quan.
{ value: 42.3, unit: "km/h" }1. Tạo đồng hồ và chọn tốc độ
Mở Thêm(…)→ Đồng hồ tùy chỉnh trong bảng điều khiển và chọn Thêm đồng hồ mới. Đồng hồ mới đã đi kèm với đầu vào tốc độ cơ bản.
- Nhấp vào tên ở đầu trình chỉnh sửa, đi tới Cài đặt đồng hồ và đặt tên là "Tốc độ của tôi".
- Nhấp vào bánh răng bên cạnh Liên kết đầu vào để mở Cấu hình tham số. Kiểm tra tốc độ đầu vào: mã định danh là
speed, loại là Dữ liệu cơ bản, nguồn là Tốc độ. Nếu thiếu, hãy sử dụng Thêm tham số để tạo một cái mới. - Nhấp vào Xong để quay lại và lưu cài đặt, sau đó quay lại khu vực chỉnh sửa.
Kịch bản đọc tốc độ thông qua $data.current.speed; ở đây tên trường đến từ mã định danh đầu vào. Trình soạn thảo cung cấp các gợi ý về loại như được xác định. Ví dụ này không yêu cầu ràng buộc OBD.
2. Dán toàn bộ mã
Thay thế toàn bộ nội dung ban đầu của vùng chỉnh sửa bằng mã hoàn chỉnh bên dưới. Đừng bọc nó trong main() khác. Ví dụ này chỉ có một chức năng nhập.
Bây giờ hãy giữ mã như cũ. Nó sẽ đọc tốc độ hiện tại mỗi lần cần vẽ, sắp xếp các giá trị và đơn vị lên xuống; khi thiếu số đọc sẽ hiển thị một đường ngang. Phần tiếp theo giải thích nó theo thứ tự thực hiện.
function main() {
const speed = $data.current.speed;
return (
<VStack spacing={8}>
<Text fontSize={64} color={$env.foreground}>
{speed?.value == null ? '—' : Math.round(speed.value)}
</Text>
<Text fontSize={16} color={$env.accent}>
{speed?.unit ?? $env.speedUnit}
</Text>
</VStack>
);
}
Từ mã thành đồng hồ
Nhìn vào dữ liệu đầu tiên, sau đó là hình ảnh. Giả sử lần này speed là { value: 42.3, unit: "km/h" }:
const speed = $data.current.speedĐọc bài này đi. Ở đâyspeedlà một đối tượng chứa các giá trị số và đơn vị chứ không phải chính số đó.speed?.value == nullkiểm tra các bài kiểm tra còn thiếu. Khi đối tượng không tồn tại hoặc giá trị trống,'—'được chọn; khi giá trị là0, nhánh này sẽ không được lấy.Math.round(speed.value)làm tròn42.3thành42và đưa nó vàoTextđầu tiên để hiển thị. Việc làm tròn chỉ ảnh hưởng đến màn hình hiển thị của đồng hồ này và không sửa đổi số đọc ban đầu.Textthứ hai hiển thịspeed.unit. Khi hiện tại không có đơn vị nào,?? $env.speedUnitsử dụng đơn vị tốc độ của môi trường hiển thị hiện tại.VStacksắp xếp hai văn bản chồng lên nhau vàspacing={8}kiểm soát khoảng cách giữa chúng.
$env.foreground và $env.accent cung cấp văn bản và màu nhấn cho chủ đề hiện tại. Những màu sắc này sẽ cập nhật khi chủ đề thay đổi.
Không sử dụng speed?.value || '—' để đánh giá các số đo bị thiếu: JavaScript sẽ coi các số 0 hợp lệ là giá trị sai, khiến đường ngang hiển thị không chính xác khi đỗ xe.
3. Kiểm tra giao diện khi xem trước
Nhấp vào Xem trước ở cuối trình chỉnh sửa. Bạn sẽ thấy số tốc độ lớn hơn ở trên cùng và đơn vị nhỏ hơn ở hàng dưới cùng. Các con số trong bản xem trước là các giá trị mô phỏng, không yêu cầu khởi động xe và không nhất thiết phải bằng tốc độ đo bằng điện thoại di động tại thời điểm này.
Sau đó thực hiện ba sửa đổi nhỏ và xem trước mỗi lần:
| Ôn lại | Những thay đổi bạn sẽ thấy |
|---|---|
fontSize={64} đổi thành 48 |
Số chính trở nên nhỏ hơn. |
spacing={8} đổi thành 16 |
Số và đơn vị cách xa nhau hơn. |
Màu số chính đã đổi thành $env.accent |
Sử dụng màu nhấn cho các số chính. |
Kiểm tra các kích cỡ khác nhau và chủ đề sáng và tối. Khi nội dung bị cắt ở một kích thước nhất định, trước tiên hãy giảm kích thước phông chữ hoặc khoảng cách, sau đó quan sát. Không sử dụng số lượng lớn offset x/y để che đậy các vấn đề về bố cục.
Nếu xảy ra lỗi, hãy khôi phục về trạng thái ban đầu và kiểm tra theo số dòng trong nhật ký. Khi xem trước, góc trên bên phải là Nhật ký; sau khi đóng bản xem trước và quay lại trạng thái chỉnh sửa, góc trên bên phải trở về Lưu. Bản xem trước thành công chỉ có nghĩa là bộ đầu vào mô phỏng này có thể được hiển thị và dữ liệu thực tế cần được kiểm tra trong bước tiếp theo.
4. Lưu và thêm vào bảng đồng hồ
Đóng bản xem trước, nhấp vào Lưu, thoát trình chỉnh sửa và tìm "Tốc độ của tôi" trong thư viện nhạc cụ. Mở lại Thêm(…)→ Sửa bảng đồng hồ, nhấp vào + để thêm nó và cuối cùng nhấp vào Xong.
Lúc này thẻ chuyển sang đọc tốc độ thực tế. Bạn có thể đặt nó và đồng hồ đo tốc độ tích hợp trên cùng một trang để xác minh: khi chúng sử dụng cùng một trường tốc độ cơ bản, các giá trị sẽ tương ứng; do các phương pháp lưu giữ số thập phân khác nhau nên màn hình hiển thị có thể hơi khác một chút.
| Hiển thị thực tế | Bước tiếp theo |
|---|---|
0 và đơn vị tốc độ |
Đã đạt được tốc độ bằng 0 và không cần phải sửa logic kiểm tra bị thiếu. |
— |
Quay lại cài đặt để xác nhận rằng tốc độ đã được chọn, sau đó kiểm tra quyền định vị và tín hiệu hiện tại. |
| Có mét trong thư viện, nhưng không có trên trang. | Bước "Chỉnh sửa trang tổng quan → Thêm" vẫn chưa được hoàn thành. |
| Chỉ bản xem trước mới có số | Bản xem trước là đầu vào mô phỏng; tiến hành kiểm tra nguồn dữ liệu thực tế. |
Tại thời điểm này, công cụ đầu tiên đã hoàn tất. Trong bài viết tiếp theo, hãy thay thế "nhận tốc độ" bằng "lấy tham số OBD của riêng bạn" và bố cục cũng như mã hiển thị có thể tiếp tục được sử dụng.