🔤 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.

🧱 Outras formas de organizar widgets
Wrappasa os elementos á seguinte liña cando non caben. É útil para etiquetas.Stackcoloca widgets uns sobre outros.Positionedpermite indicar a posición dun fillo dentro del.LayoutBuilderconstrú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(...).

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:
| Propiedade | Para que serve? | Exemplo |
|---|---|---|
wordSpacing | Espazo adicional entre palabras. | wordSpacing: 4 |
decorationColor | Cor do subliñado ou doutra decoración. | decorationColor: Colors.red |
decorationStyle | Forma da liña decorativa. | decorationStyle: TextDecorationStyle.dotted |
📚 Consulta: