$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

widthnumber

Larghezza

heightnumber

Altezza

darkboolean

Aspetto scuro

foregroundstring

Colore del testo

mode"instruments" | "hud"

Modalità di visualizzazione

speedUnit"km/h" | "mph"

Unità di velocità

languagestring

Lingua dell’app

reduceMotionboolean

Riduci movimento

accentstring

Colore di risalto

obdDevice{ id: string; name: string } | null

Dispositivo OBD