keyboard_textfield.dart 1.68 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6 7 8 9 10 11 12
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';
import 'package:flutter_driver/driver_extension.dart';

import 'keys.dart' as keys;

void main() {
  enableFlutterDriverExtension();

13
  runApp(MyApp());
14 15 16 17 18
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
19
    return MaterialApp(
20
      title: 'Keyboard & TextField',
21 22
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(),
23 24 25 26 27 28
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
29
  _MyHomePageState createState() => _MyHomePageState();
30 31 32
}

class _MyHomePageState extends State<MyHomePage> {
33
  final ScrollController _controller = ScrollController();
34 35 36 37 38 39 40 41 42 43 44 45 46 47
  double offset = 0.0;

  @override
  void initState() {
    super.initState();
    _controller.addListener(() {
      setState(() {
        offset = _controller.offset;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
48 49
    return Scaffold(
      body: Column(
50
        children: <Widget>[
51
          Text('$offset',
52 53
            key: const ValueKey<String>(keys.kOffsetText),
          ),
54 55
          Expanded(
            child: ListView(
56 57 58
              key: const ValueKey<String>(keys.kListView),
              controller: _controller,
              children: <Widget>[
59
                Container(
60 61 62
                  height: MediaQuery.of(context).size.height,
                ),
                const TextField(
63
                  key: ValueKey<String>(keys.kDefaultTextField),
64 65 66 67 68 69 70 71 72
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}