$env · Lingkungan tampilan
$env menyediakan ukuran, tema, mode tampilan, unit dan bahasa instrumen saat ini, yang digunakan untuk mengadaptasi kode yang sama untuk skenario tampilan seperti ponsel dan HUD.
Ukuran dan tata letak
width, height adalah lebar dan tinggi area instrumen yang tersedia saat ini, dalam titik layar, dan bervariasi menurut ukuran kartu dan lingkungan tampilan. Ini bukan resolusi keseluruhan ponsel, juga bukan jumlah piksel pada gambar.
Font, radius grafik, dan koordinat titik akhir yang perlu disesuaikan dengan ukurannya harus dihitung menggunakan lebar dan tinggi ini di main(). Lingkaran tetap dengan 120 titik selalu menggunakan ukuran tetap; untuk membuatnya berbeda dengan kartu, hitung diameternya menggunakan nilai yang lebih kecil dari lebar dan tinggi yang tersedia.
Tema, mode tampilan, dan satuan
foreground adalah warna teks yang sesuai dengan latar belakang saat ini, accent adalah warna aksen, dan dark mewakili tampilan gelap saat ini. Nilai mode adalah instruments atau hud, menunjukkan tampilan meteran normal atau HUD.
speedUnit mewakili unit tampilan kecepatan saat ini, language adalah bahasa Aplikasi, dan reduceMotion mewakili pengaturan efek dinamis pelemahan sistem. obdDevice menyediakan id dan name dari perangkat yang terhubung saat ini, atau kosong jika tidak ada perangkat yang siap. Label unit harus digunakan dengan nilai numerik; mengubah label itu sendiri tidak akan mengonversi nilai numerik.
Contoh: Menyesuaikan mode tampilan
Contoh berikut menggunakan ukuran font yang lebih besar dalam mode HUD, dan menggunakan unit warna dan kecepatan teks tema saat ini.
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
pembaruan lingkungan
CapDrive memberikan masukan baru ketika dimensi, tema, atau keadaan lain berubah. Masukkan penghitungan yang bergantung pada $env ke dalam main() untuk memastikan bahwa pengundian berikutnya menggunakan nilai baru. Efek animasi yang berulang disesuaikan menurut reduceMotion untuk menghindari pengabaian preferensi sistem pengguna.
Bidang
widthnumberLebar
heightnumberTinggi
darkbooleanTampilan gelap
foregroundstringWarna teks
mode"instruments" | "hud"Mode tampilan
speedUnit"km/h" | "mph"Satuan kecepatan
languagestringBahasa aplikasi
reduceMotionbooleanKurangi Gerakan
accentstringWarna aksen
obdDevice{ id: string; name: string } | nullPerangkat OBD