概述

#

TextInputClient 介面添加了 insertContent 方法,以允許 Android 的影像鍵盤功能將內容插入 Flutter 的 TextField

背景

#

從 Android 7.1 開始,IME(輸入法編輯器或虛擬鍵盤)可以將影像和富內容傳送到文字編輯器。這使使用者能夠將 gif、貼紙或上下文感知的富內容插入到文字欄位中。

變更說明

#

當用戶在 IME 中插入富內容時,平臺會發送一個 TextInputClient.commitContent 通道訊息,通知 Dart 程式碼 IME 已插入富內容。通道訊息包含 JSON 格式的已插入內容的 MIME 型別、URI 和位元組資料。

遷移指南

#

如果您之前實現了 TextInputClient 介面,請覆蓋 insertContent 方法,以支援富內容插入或提供一個空實現。

要遷移,請實現 insertContent

遷移前的程式碼

dart
class MyCustomTextInputClient implements TextInputClient {
  // ...
}

遷移後的程式碼

dart
class MyCustomTextInputClient implements TextInputClient {
  // ...
  @override
  void insertContent() {
    // ...
  }
  // ...
}

您的 TextInputClient 實現可能不需要接收 IME 插入的富內容。在這種情況下,您可以將 insertContent 的實現留空,不會有任何後果。

dart
class MyCustomTextInputClient implements TextInputClient {
  // ...
  @override
  void insertContent() {}
  // ...
}

作為替代方案,您可以使用與預設 TextInputClient 類似的實現。要了解如何執行此操作,請檢視 insertContent 實現

為防止介面發生破壞性更改,請使用 with TextInputClient 而不是 implements TextInputClient

時間線

#

已上線版本:3.8.0-1.0.pre
穩定版本:3.10.0

參考資料

#

API 文件

相關議題

相關 PR