diegoRodicio

View Categories

📚 Para saber máis

🔤 Fontes locais sen paquetes

Podemos incluír os ficheiros dunha fonte coa aplicación e declaralos na sección flutter de pubspec.yaml. Por exemplo, despois de gardar Roboto-Regular.ttf en assets/fonts/:

flutter:
  uses-material-design: true
  fonts:
    - family: Roboto # Nome que usaremos en TextStyle.
      fonts:
        - asset: assets/fonts/Roboto-Regular.ttf

Engade fonts á sección existente, conservando os assets que xa teñas. Executa flutter pub get e reinicia a aplicación.

const Text(
  'IES San Mamede',
  style: TextStyle(fontFamily: 'Roboto'), // Nome declarado no YAML.
)

📚 Consulta:

Na captura pódese ver a relación entre o ficheiro da fonte, o nome declarado no YAML e fontFamily.

Declarar unha fonte local e aplicala ao texto
Declarar unha fonte local e aplicala ao texto

🧱 Outras formas de organizar widgets

  • Wrap pasa os elementos á seguinte liña cando non caben. É útil para etiquetas.
  • Stack coloca widgets uns sobre outros. Positioned permite indicar a posición dun fillo dentro del.
  • LayoutBuilder constrúe unha interface segundo o espazo que lle deixa o pai. Útil para cambiar a distribución entre móbil e escritorio.

📚 Consulta:

👆 Detectar outros xestos

GestureDetector permite detectar un toque, un dobre toque ou unha pulsación longa. Para unha acción habitual, comeza cun botón: xa incorpora o comportamento visual e de accesibilidade esperado.

Fragmento para o body:

GestureDetector(
  onDoubleTap: () => debugPrint('Dobre toque en 2º DAM'),
  child: const Padding(
    padding: EdgeInsets.all(24), // Ampliamos a zona sobre a que tocar.
    child: Text('2º DAM'),
  ),
)

InkWell é outra opción cando queremos tamén o efecto visual do toque sobre unha superficie Material.

📚 Consulta:

🖼️ Outras opcións para imaxes

AssetImage e NetworkImage describen de onde se obtén unha imaxe; non son widgets. Poden usarse en Image(image: ...) ou noutras propiedades que esperan un provedor de imaxes. Para empezar, Image.asset e Image.network resultan máis directos.

A captura seguinte mostra a declaración de assets e dúas formas de mostrar a mesma fotografía: Image(image: AssetImage(...)) e Image.asset(...).

Dúas formas de mostrar unha imaxe local: Image.asset e AssetImage
Dúas formas de mostrar unha imaxe local: Image.asset e AssetImage

loadingBuilder permite personalizar o que se mostra durante a descarga; errorBuilder proporciona unha alternativa se falla.

📚 Consulta:

🎛️ Estilos segundo o estado dun botón

WidgetStateProperty permite definir estilos diferentes segundo o botón estea premido, desactivado ou teña o foco. Para estilos sinxelos abonda con styleFrom.

📚 Consulta:

✍️ Máis opcións de texto

Para comezar abondan o tamaño, o grosor e a cor. Estas propiedades de TextStyle permiten axustes máis concretos:

PropiedadePara que serve?Exemplo
wordSpacingEspazo adicional entre palabras.wordSpacing: 4
decorationColorCor do subliñado ou doutra decoración.decorationColor: Colors.red
decorationStyleForma da liña decorativa.decorationStyle: TextDecorationStyle.dotted

📚 Consulta: