mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Introduce a new `constraints` parameter, which constrains the size of the tooltip's message and deprecate the now obsolete `height` parameter. Do the same for the theme data, while also making some minor changes to the docs to clear up some misconceptions about which properties apply to the tooltip's message and which to the tooltip's child. To make the transition from `height` to `constraints` as easy as possible for our users, introduce fix data to do this replacement automatically in the IDE. Closes: #163313 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
47 lines
1.4 KiB
Dart
47 lines
1.4 KiB
Dart
// 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 [Tooltip].
|
|
|
|
void main() => runApp(const TooltipExampleApp());
|
|
|
|
class TooltipExampleApp extends StatelessWidget {
|
|
const TooltipExampleApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
theme: ThemeData(tooltipTheme: const TooltipThemeData(preferBelow: false)),
|
|
home: Scaffold(
|
|
appBar: AppBar(title: const Text('Tooltip Sample')),
|
|
body: const Center(child: TooltipSample()),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class TooltipSample extends StatelessWidget {
|
|
const TooltipSample({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Tooltip(
|
|
message: 'I am a Tooltip',
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(25),
|
|
gradient: const LinearGradient(colors: <Color>[Colors.amber, Colors.red]),
|
|
),
|
|
constraints: const BoxConstraints(minWidth: 250),
|
|
padding: const EdgeInsets.all(8.0),
|
|
preferBelow: true,
|
|
textStyle: const TextStyle(fontSize: 24),
|
|
showDuration: const Duration(seconds: 2),
|
|
waitDuration: const Duration(seconds: 1),
|
|
child: const Text('Tap this text and hold down to show a tooltip.'),
|
|
);
|
|
}
|
|
}
|