// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; /// Flutter code sample for [FloatingActionButton]. void main() { runApp(const FloatingActionButtonExampleApp()); } class FloatingActionButtonExampleApp extends StatelessWidget { const FloatingActionButtonExampleApp({ super.key }); @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData(useMaterial3: true), home: const FloatingActionButtonExample(), ); } } class FloatingActionButtonExample extends StatefulWidget { const FloatingActionButtonExample({ super.key }); @override State<FloatingActionButtonExample> createState() => _FloatingActionButtonExampleState(); } class _FloatingActionButtonExampleState extends State<FloatingActionButtonExample> { // The FAB's foregroundColor, backgroundColor, and shape static const List<(Color?, Color? background, ShapeBorder?)> customizations = <(Color?, Color?, ShapeBorder?)>[ (null, null, null), // The FAB uses its default for null parameters. (null, Colors.green, null), (Colors.white, Colors.green, null), (Colors.white, Colors.green, CircleBorder()), ]; int index = 0; // Selects the customization. @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('FloatingActionButton Sample'), ), body: const Center(child: Text('Press the button below!')), floatingActionButton: FloatingActionButton( onPressed: () { setState(() { index = (index + 1) % customizations.length; }); }, foregroundColor: customizations[index].$1, backgroundColor: customizations[index].$2, shape: customizations[index].$3, child: const Icon(Icons.navigation), ), ); } }