tooltip_demo.dart 2.36 KB
Newer Older
Hans Muller's avatar
Hans Muller committed
1 2 3 4 5 6 7
// Copyright 2016 The Chromium 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';

const String _introText =
8 9 10
  'Tooltips are short identifying messages that briefly appear in response to '
  'a long press. Tooltip messages are also used by services that make Flutter '
  'apps accessible, like screen readers.';
Hans Muller's avatar
Hans Muller committed
11

12
class TooltipDemo extends StatelessWidget {
13

14
  static const String routeName = '/material/tooltips';
15

16
  @override
Hans Muller's avatar
Hans Muller committed
17 18 19
  Widget build(BuildContext context) {
    final ThemeData theme = Theme.of(context);
    return new Scaffold(
20
      appBar: new AppBar(
21
        title: const Text('Tooltips')
Hans Muller's avatar
Hans Muller committed
22 23 24
      ),
      body: new Builder(
        builder: (BuildContext context) {
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
          return new SafeArea(
            top: false,
            bottom: false,
            child: new ListView(
              children: <Widget>[
                new Text(_introText, style: theme.textTheme.subhead),
                new Row(
                  children: <Widget>[
                    new Text('Long press the ', style: theme.textTheme.subhead),
                    new Tooltip(
                      message: 'call icon',
                      child: new Icon(
                        Icons.call,
                        size: 18.0,
                        color: theme.iconTheme.color
                      )
                    ),
                    new Text(' icon.', style: theme.textTheme.subhead)
                  ]
                ),
                new Center(
                  child: new IconButton(
                    iconSize: 48.0,
                    icon: const Icon(Icons.call),
                    color: theme.iconTheme.color,
                    tooltip: 'Place a phone call',
                    onPressed: () {
                      Scaffold.of(context).showSnackBar(const SnackBar(
                         content: const Text('That was an ordinary tap.')
                      ));
                    }
                  )
Hans Muller's avatar
Hans Muller committed
57
                )
58 59 60 61 62 63 64 65 66
              ]
              .map((Widget widget) {
                return new Padding(
                  padding: const EdgeInsets.only(top: 16.0, left: 16.0, right: 16.0),
                  child: widget
                );
              })
              .toList()
            ),
Hans Muller's avatar
Hans Muller committed
67 68 69 70 71 72
          );
        }
      )
    );
  }
}