1

简短的介绍

向现有的 Android 应用程序添加颤振片段是在显示键盘时在底部添加额外的填充。

描述

如果将 Flutter 片段导入到 Android 应用中并且该片段不是全屏的(例如,带有底部导航栏的屏幕),则打开键盘会在 Flutter 中添加额外的填充。

这是基本布局

这是让我们发疯的问题。

没有颤振的Android android中的颤振片段,键盘关闭 android中的颤振片段,键盘打开

更大的图像

  1. https://i.stack.imgur.com/Gptqd.png
  2. https://i.stack.imgur.com/Qpau0.png
  3. https://i.stack.imgur.com/0rluD.png

图三显示了键盘和文本字段之间的填充。它显然来自颤动(因为它是白色的)。它总是与从片段末端到屏幕末端的距离相同的高度。

Android 的键盘输入可见性没有帮助。我们知道resizeToAvoidBottomInset,但是使用它会切断文本字段并且不会将活动字段滚动到视图中,这正是我们想要的。

Android 或 Flutter 中是否有一些选项可以解决此问题,还是 Flutter 框架中的错误?

例子

在github上创建了一个最小的工作示例。它包括一个小的颤振片段 + 一个 android 示例(文件 > 新建 > 新项目 > 底部导航活动)。我按照颤振文档提供的说明进行操作

扑医生

[√] Flutter (Channel stable, 2.8.0, on Microsoft Windows [Version 10.0.19044.1415], locale en-AT)
    • Flutter version 2.8.0 at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cf44000065 (5 weeks ago), 2021-12-08 14:06:50 -0800
    • Engine revision 40a99c5951
    • Dart version 2.15.0

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\user\AppData\Local\Android\sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 2020.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[√] VS Code (version 1.63.2)
    • VS Code at C:\Users\user\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.32.0

[√] Connected device (3 available)
    • Pixel 4a (mobile) •                • android-arm64  • Android 12 (API 31)
    • Chrome (web)      • chrome         • web-javascript • Google Chrome 96.0.4664.110
    • Edge (web)        • edge           • web-javascript • Microsoft Edge 96.0.1054.62

• No issues found!
4

0 回答 0