@ -0,0 +1,33 @@ | 
				
			|||||||
 | 
					// ignore_for_file: public_member_api_docs | 
				
			||||||
 | 
					import 'package:flutter/rendering.dart'; | 
				
			||||||
 | 
					import 'package:flutter/widgets.dart'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// NOTE ref: https://github.com/flutter/flutter/issues/71687 & https://gist.github.com/matthew-carroll/65411529a5fafa1b527a25b7130187c6 | 
				
			||||||
 | 
					/// Same as `IntrinsicHeight` except that when this widget is instructed | 
				
			||||||
 | 
					/// to `computeDryLayout()`, it doesn't invoke that on its child, instead | 
				
			||||||
 | 
					/// it computes the child's intrinsic height. | 
				
			||||||
 | 
					/// | 
				
			||||||
 | 
					/// This widget is useful in situations where the `child` does not | 
				
			||||||
 | 
					/// support dry layout, e.g., `TextField` as of 01/02/2021. | 
				
			||||||
 | 
					class DryIntrinsicHeight extends SingleChildRenderObjectWidget { | 
				
			||||||
 | 
					  const DryIntrinsicHeight({ | 
				
			||||||
 | 
					    super.key, | 
				
			||||||
 | 
					    super.child, | 
				
			||||||
 | 
					  }); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  RenderDryIntrinsicHeight createRenderObject(final BuildContext context) => RenderDryIntrinsicHeight(); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RenderDryIntrinsicHeight extends RenderIntrinsicHeight { | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  Size computeDryLayout(final BoxConstraints constraints) { | 
				
			||||||
 | 
					    if (child != null) { | 
				
			||||||
 | 
					      final height = child!.computeMinIntrinsicHeight(constraints.maxWidth); | 
				
			||||||
 | 
					      final width = child!.computeMinIntrinsicWidth(height); | 
				
			||||||
 | 
					      return Size(width, height); | 
				
			||||||
 | 
					    } else { | 
				
			||||||
 | 
					      return Size.zero; | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					} | 
				
			||||||
| 
		 Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.1 KiB  | 
| 
		 Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB  | 
| 
		 Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB  | 
| 
		 Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB  | 
| 
		 Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 4.5 KiB  | 
| 
		 Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.4 KiB  |