// 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 const MaterialApp(home: FloatingActionButtonExample()); } } class FloatingActionButtonExample extends StatefulWidget { const FloatingActionButtonExample({super.key}); @override State createState() => _FloatingActionButtonExampleState(); } class _FloatingActionButtonExampleState extends State { // 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), ), ); } }