Open In App

Flutter – Using Google fonts

Last Updated : 21 Oct, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Any UI developer that builds an application has to deal with fonts. Google Fonts provides a wide range of fonts that can be used to improve the fonts of the User Interface. Flutter provides a Google fonts package that can be used to implements various available fonts. Some fonts that are available for use through the Google fonts package are listed below:

  • Roboto
  • Open sans
  • Lato
  • Oswald
  • Raleway

In this article, we will build a simple app and implement some Google fonts to it. To do so follow the below steps:

  • Add the google_fonts dependency to the pubspec.yaml file.
  • Import the dependency to the main.dart file.
  • Use the StatelessWidget to give the structure to the application
  • Use a StatefulWidget to design the homepage for the application
  • Add a text to the body of the app body and apply the fonts

Adding Dependency:

Use the Google fonts dependency in the pubspec.yaml as shown below:

dependency

Importing Dependency:

To import the dependency in the main.dart file as below:

import 'package:google_fonts/google_fonts.dart';

Creating the application structure:

Use the StatelessWidget to give a simple structure to the application as shown below:

Dart




class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'GeeksForGeeks'),
    );
  }
}


Designing the Homepage:

To design, the homepage for the application makes use of the StatefulWidget. Initiate the state at 0 that counts the number of clicks on the button that we will be adding to the homepage. To do so use the below:

Dart




class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  
  final String title;
  
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
  
class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  
  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }


Implementing the fonts:

The font that we will be Oswald font and Lato font. In the TextStyle property you can add the same as shown below:

Dart




    children: <Widget>[
      Text(
        'You have pushed the button this many times:',
        style: GoogleFonts.oswald(textStyle: display1),
      ),
      Text(
        '$_counter',
        style: GoogleFonts.lato(fontStyle: FontStyle.italic),
      ),
    ],
  ),
),


Complete Source Code:

Dart




import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
  
void main() => runApp(MyApp());
  
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'GeeksForGeeks'),
    );
  }
}
  
class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  
  final String title;
  
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
  
class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  
  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }
  
  @override
  Widget build(BuildContext context) {
    final TextStyle display1 = Theme.of(context).textTheme.headline4;
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        backgroundColor: Colors.green,
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
              style: GoogleFonts.oswald(textStyle: display1),
            ),
            Text(
              '$_counter',
              style: GoogleFonts.lato(fontStyle: FontStyle.italic),
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.play_arrow),
      ),
    );
  }
}


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads