$env · Ambiente di visualizzazione
$env fornisce la dimensione, il tema, la modalità di visualizzazione, l'unità e la lingua dello strumento corrente, che serve per adattare lo stesso codice a scenari di visualizzazione come telefoni cellulari e HUD.
Dimensioni e disposizione
width, height sono la larghezza e l'altezza dell'area attualmente disponibile dello strumento, in punti sullo schermo, e variano con la dimensione della scheda e l'ambiente di visualizzazione. Non rappresentano la risoluzione dell'intero telefono, né il numero di pixel nell'immagine.
I caratteri, il raggio grafico e le coordinate del punto finale che devono essere modificate con le dimensioni devono essere calcolati utilizzando questa larghezza e altezza in main(). Un cerchio fisso di 120 punti utilizza sempre una dimensione fissa; per farlo variare con la scheda, calcolare il diametro utilizzando il valore minore tra larghezza e altezza disponibili.
Tema, modalità di visualizzazione e unità
foreground è il colore del testo appropriato per lo sfondo corrente, accent è il colore principale e dark rappresenta l'aspetto scuro corrente. Il valore di mode è instruments o hud, che indica un misuratore normale o un display HUD.
speedUnit rappresenta l'unità di visualizzazione della velocità corrente, language è la lingua dell'app e reduceMotion rappresenta l'impostazione dell'effetto dinamico di indebolimento del sistema. obdDevice fornisce id e name del dispositivo attualmente connesso o vuoto se non è presente alcun dispositivo pronto. Le etichette delle unità devono essere utilizzate con valori numerici; la modifica dell'etichetta stessa non convertirà il valore numerico.
Esempio: adattare la modalità di visualizzazione
L'esempio seguente utilizza una dimensione di carattere più grande in modalità HUD e utilizza il colore del testo del tema corrente e le unità di velocità.
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
aggiornamento dell'ambiente
CapDrive fornisce nuovi input quando cambiano dimensioni, temi o altre circostanze. Inserisci i calcoli che dipendono da $env all'interno di main() per garantire che l'estrazione successiva utilizzi i nuovi valori. Gli effetti di animazione ripetuti vengono regolati in base a reduceMotion per evitare di ignorare le preferenze di sistema dell'utente.
Campo
widthnumberLarghezza
heightnumberAltezza
darkbooleanAspetto scuro
foregroundstringColore del testo
mode"instruments" | "hud"Modalità di visualizzazione
speedUnit"km/h" | "mph"Unità di velocità
languagestringLingua dell’app
reduceMotionbooleanRiduci movimento
accentstringColore di risalto
obdDevice{ id: string; name: string } | nullDispositivo OBD