From f79fc52a8959fb25657c173d944e45c783fcd144 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Tue, 14 Apr 2020 16:31:17 +0200 Subject: [PATCH] PurchaseScreen: Allow it to be scrolled Maybe for really small screens? --- lib/screens/purchase_screen.dart | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/screens/purchase_screen.dart b/lib/screens/purchase_screen.dart index 8ebc592a..bc13efb1 100644 --- a/lib/screens/purchase_screen.dart +++ b/lib/screens/purchase_screen.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -101,9 +102,8 @@ class _PurchaseScreenState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, ); - w = Container( + w = _SingleChildScrollViewExpanded( child: SafeArea(child: w), - color: theme.scaffoldBackgroundColor, padding: const EdgeInsets.all(16.0), ); @@ -237,3 +237,26 @@ class EmptyAppBar extends StatelessWidget implements PreferredSizeWidget { @override Size get preferredSize => const Size(0.0, 0.0); } + +class _SingleChildScrollViewExpanded extends StatelessWidget { + final Widget child; + final EdgeInsetsGeometry padding; + + _SingleChildScrollViewExpanded({this.child, this.padding}); + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (BuildContext context, BoxConstraints constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints.tightFor( + height: max(100, constraints.maxHeight)), + child: child, + ), + padding: padding, + ); + }, + ); + } +}