Открытие/закрытие экранной клавиатуры по нажатию на кнопку во Flutter

В проекте на Flutter необходимо реализовать открытие/закрытие экранной клавиатуры при нажатии на кнопку.

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Заголовок'),
        actions: <Widget>[
          IconButton(
            icon: Icon(Icons.keyboard),
            onPressed: () {
              // При нажатии на эту кнопку открыть клавиатуру
            },
          ),
        ],
      ),

Смотрел уже плагины Flutter Keyboard Visibility и keyboard_visibility, но они только уведомляют о смене состояния клавиатуры. Есть ли какие то плагины с данной реализацией? Либо каким образом можно это сделать самому?


Ответы (2 шт):

Автор решения: MiT

В Flutter все есть из коробки...

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  FocusNode _focusNode = FocusNode();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Заголовок'),
          actions: <Widget>[
            IconButton(
              icon: Icon(Icons.keyboard),
              onPressed: () {
                if (_focusNode.hasFocus) {
                  FocusScope.of(context).unfocus();
                } else {
                  FocusScope.of(context).requestFocus(_focusNode);
                }
              },
            ),
          ],
        ),
        body: Container(
          padding: EdgeInsets.all(20.0),
          child: Column(
            children: <Widget>[
              TextFormField(
                focusNode: _focusNode,
                decoration: InputDecoration(labelText: 'Field'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
→ Ссылка
Автор решения: ReinRaus

С учётом комментариев к ответу https://ru.stackoverflow.com/a/1168434/481 :

Скрытие виртуальной клавиатуры при подключённой физической - это функция ОС android. Скорее всего можно сделать костыли, для решения проблемы, но лучше изменить опцию в настройках, которая по-умолчанию включена.

На Samsung это можно сделать изменением настройки:
Настройки - Общие настройки - Физическая клавиатура - Отображение экранной клавиатуры.

введите сюда описание изображения

→ Ссылка