Pubblicità

Flutter – BuildContext contesto

Theme.of(context).primaryColor;

In Flutter, il BuildContext è un oggetto importante che rappresenta la posizione di un widget all’interno dell’albero dei widget. È un collegamento tra un widget e il suo albero gerarchico, e viene utilizzato per accedere a risorse o informazioni che dipendono dalla gerarchia, come i temi, le dimensioni, le direzioni di layout, e le informazioni locali.

Cosa contiene e cosa fa il BuildContext:

  1. Accesso ai widget antenati: Con il BuildContext, puoi cercare i widget antenati nell’albero per accedere a informazioni o configurazioni condivise. Ad esempio, se vuoi accedere al tema corrente, usi il contesto:dartCopia codiceTheme.of(context).primaryColor;
  2. Navigazione: Il contesto viene spesso utilizzato per la navigazione. Ad esempio, quando usi Navigator.push() o Navigator.pop(), il contesto indica a Flutter da quale posizione nell’albero dei widget deve partire la navigazione.dartCopia codiceNavigator.of(context).push(MaterialPageRoute(builder: (context) => NewPage()));
  3. Localizzazione e Risorse: Se hai bisogno di accedere a risorse come stringhe tradotte o file di immagine locali, il contesto ti permette di accedervi facilmente:dartCopia codiceString localizedString = AppLocalizations.of(context).helloWorld;
  4. MediaQuery e dimensioni dello schermo: Il contesto è utile anche per ottenere informazioni sulle dimensioni dello schermo e altre proprietà di layout:dartCopia codicevar screenSize = MediaQuery.of(context).size;
  5. Scelta di temi o stili: Il contesto viene anche utilizzato per ottenere informazioni sul tema dell’applicazione, come ad esempio i colori o gli stili tipografici:dartCopia codicevar textColor = Theme.of(context).textTheme.headline6.color;

Come funziona BuildContext

Ogni widget nella gerarchia di Flutter ha un proprio BuildContext, che rappresenta il suo posto nell’albero dei widget. Quando un widget viene costruito, il metodo build() riceve un contesto, e da quel contesto può accedere a informazioni relative alla sua posizione nell’albero e agli antenati del widget.

  • MediaQuery.of(context).size.width recupera la larghezza dello schermo corrente.
  • Theme.of(context).primaryColor accede al colore primario del tema dell’app.

Il BuildContext fornisce quindi un modo per ottenere le informazioni necessarie in base alla posizione del widget nell’albero gerarchico.