button_style.0.dart 1.86 KB
Newer Older
1 2 3 4 5 6
// 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';

7 8
/// Flutter code sample for [ElevatedButton].

9 10 11 12 13
void main() {
  runApp(const ButtonApp());
}

class ButtonApp extends StatelessWidget {
14
  const ButtonApp({super.key});
15 16 17 18 19 20 21 22 23 24 25 26 27 28

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(colorSchemeSeed: const Color(0xff6750a4), useMaterial3: true),
      title: 'Button Types',
      home: const Scaffold(
        body: ButtonTypesExample(),
      ),
    );
  }
}

class ButtonTypesExample extends StatelessWidget {
29
  const ButtonTypesExample({super.key});
30 31 32

  @override
  Widget build(BuildContext context) {
33 34
    return const Padding(
      padding: EdgeInsets.all(4.0),
35
      child: Row(
36
        children: <Widget>[
37 38 39 40 41 42 43 44 45 46 47
          Spacer(),
          ButtonTypesGroup(enabled: true),
          ButtonTypesGroup(enabled: false),
          Spacer(),
        ],
      ),
    );
  }
}

class ButtonTypesGroup extends StatelessWidget {
48
  const ButtonTypesGroup({super.key, required this.enabled});
49 50 51 52 53 54 55 56 57 58 59 60

  final bool enabled;

  @override
  Widget build(BuildContext context) {
    final VoidCallback? onPressed = enabled ? () {} : null;
    return Padding(
      padding: const EdgeInsets.all(4.0),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          ElevatedButton(onPressed: onPressed, child: const Text('Elevated')),
61 62
          FilledButton(onPressed: onPressed, child: const Text('Filled')),
          FilledButton.tonal(onPressed: onPressed, child: const Text('Filled Tonal')),
63 64 65 66 67 68 69
          OutlinedButton(onPressed: onPressed, child: const Text('Outlined')),
          TextButton(onPressed: onPressed, child: const Text('Text')),
        ],
      ),
    );
  }
}