Проблема:
Сначала код, потом скриншоты:
Это GestureDetector, открывающий модальный лист:
GestureDetector(
onTap: () {
showModalBottomSheet(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
top: Radius.circular(23.r),
),
),
isScrollControlled: true,
context: context,
builder: (bctx) => StatefulBuilder(builder:
(BuildContext context, StateSetter setModalState) {
return ModalAddFavorite();
}));
},
Это Widegt, который я использую в качестве модального листа:
class ModalAddFavorite extends StatefulWidget {
const ModalAddFavorite({Key? key}) : super(key: key);
@override
_ModalAddFavoriteState createState() => _ModalAddFavoriteState();
}
class _ModalAddFavoriteState extends State<ModalAddFavorite> {
@override
Widget build(BuildContext context) {
return StatefulBuilder(
builder: (BuildContext context, StateSetter setModalState) {
return Padding(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom * 0.98.h),
//
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
height: 20.h,
),
Container(
width: 80.w,
height: 6.w,
decoration: BoxDecoration(
color: Provider.of<CustomColors>(context, listen: false)
.customColorScheme['Grey 2'],
borderRadius: BorderRadius.circular(6.r),
),
),
SizedBox(
height: 25.h,
),
//
Text(
'ADD A FAVORITE',
style: Provider.of<CustomTextStyle>(context)
.customTextStyle('ModalHeader'),
),
SizedBox(
height: 25.5.h,
),
//
//
InputFieldAddFavorite(),
SizedBox(
height: 40.h,
)
],
),
),
);
});
}
}
Скриншоты:
Модальный лист открыт / клавиатура неактивна / нет переполнения
Модальный лист открыт/активна клавиатура/предупреждение о переполнении во Flutter
Модальный шетт оттянут вручную // за листом виден перелив:
Попробуйте добавить physics: NeverScrollableScrollPhysics()
под своим SingleChildScrollView()
.
Проблема решена: вместо того, чтобы обернуть модальный лист в SingleChildScrollView, мне нужно было обернуть столбец, содержащий саму страницу.
Хм... ничего не менял. На самом деле ничего не меняется, если я просто удалю SingleChildScrollView. Я добавил его, пытаясь решить проблему, и забыл снова убрать его.