updated example

This commit is contained in:
Noah Schairer 2023-04-28 15:59:37 -04:00
parent 89745f163e
commit 8a354c6765

View File

@ -1,63 +1,76 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:keyboard_height_plugin/keyboard_height_plugin.dart'; import 'package:keyboard_height_plugin/keyboard_height_plugin.dart';
void main() { void main() {
runApp(const MyApp()); runApp(MyApp());
} }
class MyApp extends StatefulWidget { class MyApp extends StatelessWidget {
const MyApp({super.key});
@override @override
State<MyApp> createState() => _MyAppState(); Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
} }
class _MyAppState extends State<MyApp> { class HomePage extends StatefulWidget {
String _platformVersion = 'Unknown'; @override
final _keyboardHeightPlugin = KeyboardHeightPlugin(); _HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
double _keyboardHeight = 0;
final KeyboardHeightPlugin _keyboardHeightPlugin = KeyboardHeightPlugin();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
initPlatformState(); _keyboardHeightPlugin.onKeyboardHeightChanged((double height) {
} setState(() {
_keyboardHeight = height;
// Platform messages are asynchronous, so we initialize in an async method. });
Future<void> initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
platformVersion =
await _keyboardHeightPlugin.getPlatformVersion() ?? 'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
}); });
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return Scaffold(
home: Scaffold( resizeToAvoidBottomInset: false,
appBar: AppBar( appBar: AppBar(
title: const Text('Plugin example app'), title: Text('Keyboard Height'),
), ),
body: Center( body: Center(
child: Text('Running on: $_platformVersion\n'), child: Stack(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Keyboard height: $_keyboardHeight',
),
SizedBox(height: 16),
ElevatedButton(
child: Text('Get Keyboard Height'),
onPressed: () => {},
),
],
),
Positioned(
bottom: _keyboardHeight,
left: 0,
right: 0,
child: TextField(
decoration: InputDecoration(
filled: true,
fillColor: Colors.orange,
hintText: 'Type here to open keyboard',
),
),
),
],
),
), ),
), );
); }
}
} }