You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何通过iOS键盘上方按钮切换TextField焦点

TextField焦点切换问题求助

[TextField焦点切换示意图]

各位开发者好,我正尝试通过图中所示的按钮来切换TextField的焦点。我使用了FocusScope.of(context).nextFocus();方法,但执行该方法时,键盘会关闭,当前激活的TextField失去焦点,且下一个TextField也无法被激活。恳请各位帮忙解决此问题。

环境信息

  • Flutter版本:3.0.5

flutter doctor输出结果

[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79
    darwin-arm, locale en-US)
    • Flutter version 3.0.5 at
      /Users/seniorturkmen/fvm/versions/stable
    • Upstream repository
      https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (5 weeks ago),
      2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[!] Android toolchain - develop for Android devices
    (Android SDK version 33.0.0)
    • Android SDK at
      /Users/seniorturkmen/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept
      the SDK licenses.
      See
      https://flutter.dev/docs/get-started/install/maco
      s#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at
      /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google
      Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android
      Studio.app/Contents
    • 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.12+0-b1504.28-7817840)

[✓] VS Code (version 1.70.1)
    • VS Code at /Applications/Visual Studio
      Code.app/Contents
    • Flutter extension version 3.46.0

[✓] Connected device (3 available)
    • iPhone 12 (mobile) •
      AC295A39-16D5-4B2C-8A9F-567492AD9E01 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-15-5
      (simulator)
    • macOS (desktop)    • macos
      • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)       • chrome
      • web-javascript • Google Chrome 104.0.5112.79

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

补充说明

以下是Keyboard Actions Widget的代码:

void showOverlay(
    BuildContext context,
  ) {
    if (overlayEntry != null) return;
    OverlayState? overlayState = Overlay.of(context);
    overlayEntry = OverlayEntry(
      builder: (context) {
        return Positioned(
          bottom: MediaQuery.of(context).viewInsets.bottom,
          right: 0.0,
          left: 0.0,
          child: KeyboardInputWidget(
            previous: FocusScope.of(context).previousFocus,
            next: FocusScope.of(context).nextFocus,
          ),
        );
      },
    );

    overlayState?.insert(overlayEntry!);
  }

内容的提问来源于stack exchange,提问作者Mustafa TÜRKMEN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:36:15