show<T> static method
Future<T?>
show<T>(
- BuildContext context, {
- required Widget child,
- bool isScrollControlled = true,
- bool isDismissible = true,
- EdgeInsetsGeometry? padding,
- bool showBar = true,
初始弹出窗口 使用 await show 接收 Navigator.of(context).pop(T) 的内容,建议声明 T 的类型
Implementation
static Future<T?> show<T>(
BuildContext context, {
required Widget child,
bool isScrollControlled = true,
bool isDismissible = true,
EdgeInsetsGeometry? padding,
bool showBar = true,
}) async {
return await showModalBottomSheet(
context: context,
isScrollControlled: isScrollControlled,
backgroundColor: Colors.transparent,
isDismissible: isDismissible,
builder: (BuildContext context) {
final isDarkMode = Theme.of(context).brightness == Brightness.dark;
return Padding(
padding: MediaQuery.of(context).viewInsets, // 考虑键盘高度
child: Container(
width: double.infinity,
padding: padding ?? const EdgeInsets.only(left: 16,right: 16,bottom: 16),
decoration: BoxDecoration(
color: TenScheme.getPopupBackGround(isDarkMode),
borderRadius: const BorderRadius.only(
topRight: Radius.circular(16),
topLeft: Radius.circular(16))),
child: ConstrainedBox(
constraints: const BoxConstraints(
minHeight: 120,
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
showBar ? _bar(TenScheme.getSecond(isDarkMode)).paddingSymmetric(vertical: 8) : const SizedBox(height: 16),
child
],
),
),
),
);
},
);
}