keyboard_util.dart 993 B

123456789101112131415161718192021222324252627282930313233
  1. import 'dart:core';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:news_app/constant/size_res.dart';
  4. /// @author: bo.zeng
  5. /// @email: cnhbwds@gmail.com
  6. /// @date: 2025 2025/4/17 15:21
  7. /// @description:
  8. class KeyboardUtils {
  9. /// 显示软键盘
  10. static void showKeyboard(BuildContext context, FocusNode focusNode) {
  11. FocusScope.of(context).requestFocus(focusNode);
  12. }
  13. /// 隐藏软键盘
  14. static void hideKeyboard(FocusNode focusNode) {
  15. focusNode.unfocus();
  16. }
  17. /// 判断软键盘是否可见
  18. static bool isKeyboardVisible(FocusNode focusNode) {
  19. return focusNode.hasFocus;
  20. }
  21. /// 获取键盘高度(如果弹出则返回高度,否则为 0)
  22. static double keyboardHeight(BuildContext context) {
  23. final rawKeyboardHeight = MediaQuery.of(context).viewInsets.bottom;
  24. final estimatedKeyboardHeight = rawKeyboardHeight - horizontalPadding; // 经验值,避免过高
  25. return estimatedKeyboardHeight > 0 ? estimatedKeyboardHeight : 0;
  26. }
  27. }