suffixIconConstraints property
The constraints for the suffix icon.
This can be used to modify the BoxConstraints surrounding suffixIcon.
This property is particularly useful for getting the decoration's height less than the minimum tappable height (which is 48px when the visual density is set to VisualDensity.standard). This can be achieved by setting isDense to true and setting the constraints' minimum height and width to a value lower than the minimum tappable size.
If null, a BoxConstraints with a minimum width and height of 48px is used.
This example shows the differences between two TextField widgets when
suffixIconConstraints is set to the default value and when one is not.
The isDense property must be set to true to be able to set the constraints smaller than 48px.
If null, BoxConstraints with a minimum width and height of 48px is used.
To see it in action, copy and run this code snippet on DartPad.
import 'package:material_ui/material_ui.dart';
/// Flutter code sample for [InputDecoration.suffixIconConstraints].
void main() => runApp(const SuffixIconConstraintsExampleApp());
class SuffixIconConstraintsExampleApp extends StatelessWidget {
const SuffixIconConstraintsExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('InputDecoration Sample')),
body: const SuffixIconConstraintsExample(),
),
);
}
}
class SuffixIconConstraintsExample extends StatelessWidget {
const SuffixIconConstraintsExample({super.key});
@override
Widget build(BuildContext context) {
return const Padding(
padding: .symmetric(horizontal: 8.0),
child: Column(
mainAxisAlignment: .center,
children: <Widget>[
TextField(
decoration: InputDecoration(
hintText: 'Normal Icon Constraints',
suffixIcon: Icon(Icons.search),
),
),
SizedBox(height: 10),
TextField(
decoration: InputDecoration(
isDense: true,
hintText: 'Smaller Icon Constraints',
suffixIcon: Icon(Icons.search),
suffixIconConstraints: BoxConstraints(
minHeight: 32,
minWidth: 32,
),
),
),
],
),
);
}
}
Implementation
// TODO(framework): Replace the following block with a @dartpad directive
// when it's supported. https://github.com/dart-lang/dartdoc/issues/4123
/// {@macro material_ui.dartpad_guide}
///
/// {@example /example/lib/input_decorator/input_decoration.suffix_icon_constraints.0.dart#body}
///
/// </callout-box>
final BoxConstraints? suffixIconConstraints;