GeneratedWidgetの更新により問題が発生する

GreenTigerEye

アプリの上部にある継承されたウィジェットを使用して、新しい場所が設定されるたびにアプリケーションを更新します。これにより、アプリ内のすべての可能な場所で位置座標が更新されます。

ただし、テキストフィールドもあります。数秒後にテキストフィールドをタップすると、継承されたウィジェットの更新によってキーボードが非表示になります。フラッターがキーボードを非表示にしたり、状態を再初期化して、継承されたウィジェットの更新が検索フィールドと連携して機能するようにする方法はありますか?また、テキストを入力すると、継承されたウィジェットがトリガーされて新しい更新が行われるが、検索バーとキーボードは開いたままになる可能性もあります。

 new TextField(
          controller: _controller,
          autocorrect: false,
          autofocus: true
          ...
)
rmtmckenzie

すべてのコードを見ないと、何が起こっているのかを知るのは少し難しいです。

私の推測では、継承されたウィジェットからの更新を登録するために、TextFieldの上のどこかにコンテキストを使用していると思います。

ただし、TextFieldからウィジェットツリーを上に移動し、その上のコンテキストで継承されたウィジェットを使用していないことを確認することをお勧めします。ビルドメソッドの先頭にいくつかのデバッグステートメントを配置して、ビルドがどこからトリガーされているかを正確に判断することをお勧めします(継承されたウィジェット、正しく使用している場合、そのすぐ下で再構築をトリガーするべきではありませんが、奇妙なことがあります起こりました)。

これには、次のようなものがある場合が含まれます。

MyWidget extends StatelessWidget {
  Widget build(BuildContext context) {
    Location location = MyInheritedWidget.of(context).location;
    return new Row(
      children: [
        new LocationDisplayer(location),
        new TextField( ..... ),
      ],
    );
  }    
}

私がこれを言う理由は、継承されたウィジェットがどのように機能するかについての私の理解からです。変更されると、継承されたウィジェットを取得するためにコンテキストが使用されたウィジェットが再構築されます。

つまり、テキストフィールドは技術的にプロパティを変更していませんが、ビルドの進行状況によっては実際には新しいテキストフィールドになる可能性があります(新しいvsを作成するタイミングを決定する方法については、少しフラッターマジックがあります。再構築)、したがって、フォーカスを要求していません。

MyAliExpressWidgetを使用しているものをすべて囲むために新しいウィジェットをたくさん作成する必要はなく、次のようなものを使用できると思います。

MyWidget extends StatelessWidget {
  Widget build(BuildContext context) {
    return new Row(
      children: [
        new Builder(
          builder: (context) {
            Location location = MyInheritedWidget.of(context).location;
            return new LocationDisplayer(location);
          },
        ),
        new TextField( ..... ),
      ],
    );
  }    
}

これをどこでも行っていないことを100%確信している場合は、フラッターではない方法で物事を行うことができます...ロケーションクラスは、サブスクライブおよびサブスクライブ解除メソッドを公開する可能性があります。実際にロケーションを使用しているすべてのウィジェットは、サブスクライブ(ステートフルウィジェットでもある必要があります)を呼び出し、コールバックを使用してサブスクライブinitState()を解除しますdispose()ロケーションクラスは、現在行っているように状態を変更するのではなく、単に各コールバックを呼び出すだけです。各コールバック内で、setState実際にロケーションを表示するウィジェットを呼び出す必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Mesaの更新により問題が発生しました

分類Dev

休止状態でのトランザクションの遅延更新により問題が発生する

分類Dev

Ubuntu 16.04 2018年1月3日更新により画面/アクセスの問題が発生する

分類Dev

include / requireの問題により構文エラーが発生する

分類Dev

LEFT JOINの再利用に関する問題により、WHEREおよびORDERBY句が発生します

分類Dev

ディスプレイのたわみにより、間隔が混在する問題が発生する

分類Dev

Nvidia ドライバーの更新により、Arch でサスペンド + 画面のティアリングの問題が発生する

分類Dev

Visual StudioGitが更新されずに問題が発生する

分類Dev

ディスプレイドライバーの更新により解決の問題が発生するWindows10

分類Dev

5.0.0-21カーネルの更新により、デスクトップとマウスの問題が発生する

分類Dev

t.testの追加に関する問題により、forループが発生します

分類Dev

Google広告の依存関係により、マニフェストに問題が発生する

分類Dev

int値+1の問題により、予期しない値が発生します

分類Dev

DLLのエクスポートにより、一意のポインタで問題が発生する

分類Dev

Emojione領域により、非表示のtextareaイベントの実行で問題が発生する

分類Dev

デバイスの向きのロックにより問題が発生する

分類Dev

画面の回転により、SQLiteのシーケンシャル呼び出しで問題が発生する

分類Dev

Angular 2 RC5 => RC6の移行によりインジェクターの問題が発生する

分類Dev

iframe のタイムアウトによりスクロールの問題が発生する

分類Dev

権限の問題によりUnityセグメンテーション違反が発生する

分類Dev

AppEngine IO Copyの問題により「APIエラー10(ファイル:FILE_NOT_OPENED)」が発生する

分類Dev

npmのBrewインストールでエラー/問題が発生するようになりました

分類Dev

権限の問題によりUnityセグメンテーション違反が発生する

分類Dev

Angular / Ionic-コードの公開によりどのような問題が発生する可能性がありますか?

分類Dev

kubeletcloudbuilderの実行時にCloudbuildに問題が発生する

分類Dev

投稿を更新しようとすると、Wordpressの空白ページの問題が発生します

分類Dev

drushを使用したdrupalコアの更新で問題が発生する可能性はありますか?

分類Dev

Windows 10の更新により、問題が発生したことが示されます。後で設定を再度開いてみてください

分類Dev

LaravelEloquent-PostgreSQLでJSON列を更新する際に問題が発生する

Related 関連記事

  1. 1

    Mesaの更新により問題が発生しました

  2. 2

    休止状態でのトランザクションの遅延更新により問題が発生する

  3. 3

    Ubuntu 16.04 2018年1月3日更新により画面/アクセスの問題が発生する

  4. 4

    include / requireの問題により構文エラーが発生する

  5. 5

    LEFT JOINの再利用に関する問題により、WHEREおよびORDERBY句が発生します

  6. 6

    ディスプレイのたわみにより、間隔が混在する問題が発生する

  7. 7

    Nvidia ドライバーの更新により、Arch でサスペンド + 画面のティアリングの問題が発生する

  8. 8

    Visual StudioGitが更新されずに問題が発生する

  9. 9

    ディスプレイドライバーの更新により解決の問題が発生するWindows10

  10. 10

    5.0.0-21カーネルの更新により、デスクトップとマウスの問題が発生する

  11. 11

    t.testの追加に関する問題により、forループが発生します

  12. 12

    Google広告の依存関係により、マニフェストに問題が発生する

  13. 13

    int値+1の問題により、予期しない値が発生します

  14. 14

    DLLのエクスポートにより、一意のポインタで問題が発生する

  15. 15

    Emojione領域により、非表示のtextareaイベントの実行で問題が発生する

  16. 16

    デバイスの向きのロックにより問題が発生する

  17. 17

    画面の回転により、SQLiteのシーケンシャル呼び出しで問題が発生する

  18. 18

    Angular 2 RC5 => RC6の移行によりインジェクターの問題が発生する

  19. 19

    iframe のタイムアウトによりスクロールの問題が発生する

  20. 20

    権限の問題によりUnityセグメンテーション違反が発生する

  21. 21

    AppEngine IO Copyの問題により「APIエラー10(ファイル:FILE_NOT_OPENED)」が発生する

  22. 22

    npmのBrewインストールでエラー/問題が発生するようになりました

  23. 23

    権限の問題によりUnityセグメンテーション違反が発生する

  24. 24

    Angular / Ionic-コードの公開によりどのような問題が発生する可能性がありますか?

  25. 25

    kubeletcloudbuilderの実行時にCloudbuildに問題が発生する

  26. 26

    投稿を更新しようとすると、Wordpressの空白ページの問題が発生します

  27. 27

    drushを使用したdrupalコアの更新で問題が発生する可能性はありますか?

  28. 28

    Windows 10の更新により、問題が発生したことが示されます。後で設定を再度開いてみてください

  29. 29

    LaravelEloquent-PostgreSQLでJSON列を更新する際に問題が発生する

ホットタグ

アーカイブ