TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #416 1.9K
Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня мы поговорим, что делать, если нам нужно совершать какие-либо действия при открытии и закрытии клавиатуры.

Начнем с того, как понять, открыта ли клавиатура. Тут есть несколько методов — через MediaQuery, через WidgetBindings и через библиотеки.

MediaQuery

final bottomInset = MediaQuery.of(context).viewInsets.bottom;
if (bottomInset == 0) {
// клавиатура закрыта
} else {
// клавиатура открыта
}


У этого способа есть большой минус — он не работает на комплексной верстке, а наши приложения чаще всего такие.

WidgetBindings

Второй способ сложнее, но надежнее. Сначала мы должны добавить к нашему классу WidgetBindingsObserver.

class _MyWidgetState extends State<MyWidget> with WidgetBindingsObserver {
...
}


Далее подключаем все:

@override
void initState() {
super.initState();
WidgetBindings.addObserver(this);
}

@override
void dispose() {
WidgetBindings.removeObserver(this);
super.dispose();
}

@override
didChangeMetrics() {
super.didChangeMetrics();
final isKeyboardOpen = WidgetsBinding.instance.window.viewInsets.bottom > 0;
}


Но и этот метод не идеален, так как не сможем получить высоту клавиатуры, если это необходимо.

Библиотеки

Тут достаточно большой выбор таких библиотек. Но наш совет — выбирать те, у которых много скачиваний, они чаще работают.

Во второй части мы расскажем, зачем это нужно и какие библиотеки выбрали мы. Делитесь в чате, были ли у вас случаи, когда нужно было отслеживать клавиатуру?
  • 👍 8
  • 🔥 3
  • 🗿 3
  • ❤ 1
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →