docs.flutter.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more.

Skip to main content
Flutter logo Flutter Docs
search
  • Flutter logo Flutter
  • Flutter logo Flutter Docs
  • Flutter logo Flutter API
  • Dart logo Dart
  • Dart logo DartPad
  • Dart logo pub.dev
Get started
  • Get started
  • Set up Flutter
    • Overview
    • Install with VS Code
    • Install manually
    • Upgrade SDK
    • SDK archive
    • Add to path
    • Troubleshoot
    • Uninstall SDK
    • Introduction
    • Write your first app
      • Introduction
      • Intro to Dart
      • Widgets
      • Layout
      • State management
      • Handling user input
      • Networking and data
      • Local data and caching
      • Flutter for Android devs
      • Flutter for Jetpack Compose devs
      • Flutter for SwiftUI devs
      • Flutter for UIKit devs
      • Flutter for React Native devs
      • Flutter for web devs
      • Flutter for Xamarin.Forms devs
      • Introduction to declarative UI
      • Flutter versus Swift concurrency
    • Samples & tutorials
    • Release notes
    • Breaking changes
    • Compatibility policy
    • Medium publicationopen_in_new
    • What's new in the docs
        • Overview
        • User experience
        • Feature integration
        • Custom LLM providers
        • Chat client sample
      • Vertex AI in Firebaseopen_in_new
      • Overview
      • Discover Firebase for Flutteropen_in_new
      • Get to know Firebase for Flutteropen_in_new
      • Add a user authentication flow to a Flutter app using FirebaseUIopen_in_new
      • Get to know Firebase for webopen_in_new
      • Overview
      • Add achievements and leaderboards
      • Build leaderboards with Firestoreopen_in_new
      • Add advertising
      • Add multiplayer support
      • Add in-app purchasesopen_in_new
      • Add user authenticationopen_in_new
      • Debug using Crashlyticsopen_in_new
      • Intro to Flame with Flutteropen_in_new
        • Ads overview
        • Add advertising
        • Add AdMob ads to your Flutter appopen_in_new
        • Add an AdMob banner and native inline adsopen_in_new
        • Integrate multimedia ads (video)open_in_new
        • Google AdMob mediationopen_in_new
        • Interactive Media Ads SDKopen_in_new
        • Payments overview
        • Google pay packageopen_in_new
      • Add in-app purchasesopen_in_new
      • Add Google maps to a Flutter appopen_in_new
      • Google Maps packageopen_in_new
    • Build a news app
  • User interface
  • Introduction
  • Widget catalog
    • Introduction
    • Build a layout
      • Create and use lists
      • Create a horizontal list
      • Create a grid view
      • Create lists with different types of items
      • Create lists with spaced items
      • Work with long lists
      • Overview
      • Use slivers to achieve fancy scrolling
      • Place a floating app bar above a list
      • Create a scrolling parallax effect
    • Overview
    • General approach
    • SafeArea & MediaQuery
    • Large screens & foldables
    • User input & accessibility
    • Capabilities & policies
    • Automatic platform adaptations
    • Best practices
    • Additional resources
    • Share styles with themes
    • Material design
    • Migrate to Material 3
      • Fonts & typography
      • Use a custom font
      • Export fonts from a package
      • Google Fonts packageopen_in_new
      • Use custom fragment shaders
    • Add interactivity to your app
      • Introduction
      • Handle taps
      • Drag an object outside an app
      • Drag a UI element within an app
      • Add Material touch ripples
      • Implement swipe to dismiss
      • Create and style a text field
      • Retrieve the value of a text field
      • Handle changes to a text field