From 3401780798bbcc15f0a22abd8ef1308cc4fc4c48 Mon Sep 17 00:00:00 2001 From: Niklas Date: Sat, 10 Feb 2024 23:07:17 +0100 Subject: [PATCH] Switch between function and design Protoype with _MyFormPageState2 --- emma/images/logo.png | Bin 0 -> 7710 bytes emma/lib/main.dart | 79 ++++++++++++++++++++++++++++++++++++++++++- emma/pubspec.yaml | 5 ++- 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 emma/images/logo.png diff --git a/emma/images/logo.png b/emma/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b0bb09ddcbcaecadd52803e7234818433e9d18bf GIT binary patch literal 7710 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 literal 0 HcmV?d00001 diff --git a/emma/lib/main.dart b/emma/lib/main.dart index c3933eb..dc90da2 100644 --- a/emma/lib/main.dart +++ b/emma/lib/main.dart @@ -122,7 +122,7 @@ class MyFormPage extends StatefulWidget { : super(key: key); final String title; @override - _MyFormPageState createState() => _MyFormPageState(); + _MyFormPageState2 createState() => _MyFormPageState2(); } class _MyFormPageState extends State { @@ -307,6 +307,83 @@ class _MyFormPageState extends State { }*/ } +class _MyFormPageState2 extends State { + @override + void initState() { + super.initState(); + } + + Widget build(BuildContext context) { + return Scaffold( + //You should use `Scaffold` if you have `TextField` in body. + //Otherwise on focus your `TextField` won`t scroll when keyboard popup. + body: SafeArea( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + //Header Container + Container( + padding: const EdgeInsets.all(8.0), + height: 96, + color: Colors.blue, + alignment: Alignment.center, + child: Column( + children: [ + SizedBox( + height: 70, //height of button + //width of button + child: IconButton( + icon: Image.asset('images/logo.png'), + onPressed: () {}, + ), + ), + ], + ), + ), + + //Body Container + Expanded( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 30.0), + child: Column( + children: [ + Container( + color: Colors.red, + height: 200.0, + alignment: Alignment.center, + child: Text("Content 1"), + ), + Container( + color: Colors.green, + height: 300.0, + alignment: Alignment.center, + child: Text("Content 1"), + ), + //TextField nearly at bottom + TextField( + decoration: InputDecoration(hintText: "Enter Text Here"), + ), + ], + ), + ), + ), + + //Footer Container + //Here you will get unexpected behaviour when keyboard pops-up. + //So its better to use `bottomNavigationBar` to avoid this. + Container( + padding: const EdgeInsets.all(8.0), + color: Colors.blue, + alignment: Alignment.center, + child: Text("Footer"), + ), + ], + ), + ), + ); + } +} + class TypePage extends StatelessWidget { const TypePage({Key? key, required this.title}) : super(key: key); final String title; diff --git a/emma/pubspec.yaml b/emma/pubspec.yaml index 4315e93..5c3e76d 100644 --- a/emma/pubspec.yaml +++ b/emma/pubspec.yaml @@ -30,6 +30,7 @@ environment: dependencies: flutter: sdk: flutter + # The following adds the Cupertino Icons font to your application. @@ -64,7 +65,9 @@ flutter: # assets: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg - + assets: + - images/ + - images/logo.png # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware