flutter_keyboard_visibility 0.8.0

  • Readme
  • Changelog
  • Example
  • Installing
  • 98

Flutter Keyboard Visibility #

pub package

Notification service for keyboard visibility. This is a fork, original project here.

Install #

Add the dependency to your pubspec.yaml

dependencies:
  flutter_keyboard_visibility: ^0.7.0

(Please note that the two spaces in the beginning of the line are important) Run flutter packages get in your root folder after saving the pubspec.yaml file.

Usage #

Import package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart The best practice to call the addNewListener function is inside the initState function as in the following example:

import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';

@override
void initState() {
  super.initState();

  KeyboardVisibilityNotification().addNewListener(
    onChange: (bool visible) {
      print(visible);
    },
  );
}

[0.8.0] - 04-07-2020 #

  • Fixed visibility value not changing in Kotlin based Flutter apps

[0.7.0] - 19-09-2019 #

  • Forked the project as original repo stopped being updated
  • Fix: ViewTreeObserver is unregister when start second Activity because onStop call delay
  • Fix: Activity() returns null when using backgrounding flutter plugins
  • AndroidX migration
  • Remove reachability dependency

The below changelog is from the original package #

[0.5.6] - 13-05-2019 #

  • added null check in Android layout callback
  • changed behavior on dispose
  • catching exceptions if callbacks are not unsubscribed properly

[0.5.5] - 11-05-2019 #

  • Changed README.md and formatted Dart code

[0.5.4] - 11-05-2019 #

  • Fixed plugin registration bug

[0.5.3] - 09-05-2019 #

  • Fixed exception call bug on dispose
  • Change behavior of plugin registration

[0.5.2] - 12-03-2019 #

  • Fixed possible bug on dispose
  • On iOS the keyboard pop up message is already being sent when keyboard starts popping up

[0.5.1] - 06-01-2019 #

  • Fixed bug when using multiple listeners on same page

[0.5.0] - 06-12-2018 #

  • Initial release, working on Android and iOS

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Keyboard visibility example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: KeyboardVisibilityExample(),
    );
  }
}

class KeyboardVisibilityExample extends StatefulWidget {
  KeyboardVisibilityExample({Key key}) : super(key: key);

  @override
  _KeyboardVisibilityExampleState createState() =>
      _KeyboardVisibilityExampleState();
}

class _KeyboardVisibilityExampleState extends State<KeyboardVisibilityExample> {
  KeyboardVisibilityNotification _keyboardVisibility =
      KeyboardVisibilityNotification();
  int _keyboardVisibilitySubscriberId;
  bool _keyboardState;

  @protected
  void initState() {
    super.initState();

    _keyboardState = _keyboardVisibility.isKeyboardVisible;

    _keyboardVisibilitySubscriberId = _keyboardVisibility.addNewListener(
      onChange: (bool visible) {
        setState(() {
          _keyboardState = visible;
        });
      },
    );
  }

  @override
  void dispose() {
    super.dispose();
    _keyboardVisibility.removeListener(_keyboardVisibilitySubscriberId);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Keyboard visibility example'),
      ),
      body: Center(
        child: Padding(
          padding: EdgeInsets.all(24.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              TextField(
                keyboardType: TextInputType.text,
                decoration: InputDecoration(
                  labelText: 'Input box for keyboard test',
                ),
              ),
              Container(height: 60.0),
              Text(
                  'The current state of the keyboard is: ${_keyboardState ? 'VISIBLE' : 'NOT VISIBLE'}'),
            ],
          ),
        ),
      ),
    );
  }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  flutter_keyboard_visibility: ^0.8.0

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
97
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
98
Learn more about scoring.

We analyzed this package on Apr 7, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.6
  • Flutter: 1.12.13+hotfix.8

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.2.2 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
pedantic 1.9.0