Emoji2

在目前和較舊的裝置上顯示表情符號。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 9 月 4 日 1.5.0 - - -

宣告依附元件

如要新增 Emoji2 的依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
    def emoji2_version = "1.5.0"

    implementation "androidx.emoji2:emoji2:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version"
}

Kotlin

dependencies {
    val emoji2_version = "1.5.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

Emoji2 Emojipicker 1.0 版

1.0.0-alpha03 版本

2023 年 3 月 8 日

發布 androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03查看 1.0.0-alpha03 版的修訂項

修正錯誤

  • 移除不必要的資源,並將程式庫大小縮減約 030 萬。

1.0.0-alpha02 版

2023 年 2 月 22 日

發布 androidx.emoji2:emoji2-emojipicker:1.0.0-alpha021.0.0-alpha02 版包含此連結所列的修訂項目。

API 變更

  • 新增 Java 用戶端的 API,以便提供最近使用的表情符號。(I39d10)。

修正錯誤

  • 更新表情符號資源,支援表情符號 15.0 (Ib4eb3)
  • 在彈出式視窗中選取表情符號時,請將所有相同的表情符號更新為新挑選的表情符號 (最近選取的表情符號列除外)。點選時一併讀出表情符號。(I892c6)。
  • 等待 EmojiCompat 載入後,即可顯示 EmojiPickerView。(I29e03)。

1.0.0-alpha01 版

2023 年 1 月 25 日

發布了 androidx.emoji2:emoji2-emojipicker:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 推出了表情符號挑選器,這可為使用者提供一致的使用者體驗,讓他們在 Android 作業系統原始設備製造商 (OEM) 的裝置和應用程式上,都能使用最新的表情符號。此外還提供最新的表情符號支援和表情符號挑選器 UI,包括膚色和表情符號相容功能。

API 變更

  • 推出了 EmojiPickerView 類別,在具有可點選水平標頭的垂直可捲動檢視畫面中,提供最新的表情符號。
  • 透過 XML 屬性 emojiGridColumns 或函式 setEmojiGridColumns(),可設定表情符號挑選器格線欄。
  • 透過 XML 屬性 emojiGridRows 或函式 setEmojiGridRows() 可設定表情符號選擇器格線列。
  • 透過 setOnEmojiPickedListener() 可設定表情符號挑選事件監聽器,當使用者點選任何表情符號時,事件監聽器即會收到通知。
  • 透過 setRecentEmojiProvider() 可以找出近期表情符號提供者。這是選用函式。如果不設定近期表情符號提供者,程式庫會使用預設的近期表情符號提供者。預設行為定義如下:1) 系統會將選取的表情符號儲存在每個應用程式層級的共用偏好設定中。2) 挑選器會按時間先後進行反向排序,顯示最多 3 列重複選取的表情符號。
  • 推出了 EmojiViewItem 類別,可保存顯示的表情符號及其表情符號變化版本。
  • 推出了 RecentEmojiProvider 介面,可用於實作最近的表情符號清單。recentEmojiProvider 負責提供「最近使用」類別中的表情符號。

1.5 版本

1.5.0 版本

2024 年 9 月 4 日

發布 androidx.emoji2:emoji2-*:1.5.0。1.5.0 版包含這些修訂版本

自 1.4.0 版以來的重要異動

  • 支援表情符號 15.1 和雙向表情符號選取器 UI。使用者只需按一下雙向切換器,即可切換左右方向版本的表情符號。
  • 支援多滑表情符號選取器。長按情侶表情符號即可顯示多人表情符號選取器 (代表零狀態)。使用者輕觸表情符號的左半部後,右下方的表情符號預覽畫面就會隨之更新。使用者選取表情符號的兩個半部時,右下方的表情符號預覽畫面會顯示整個表情符號,方便使用者直接輸入。

1.5.0-rc01 版

2024 年 8 月 21 日

發布 androidx.emoji2:emoji2-*:1.5.0-rc01。1.5.0-rc01 版包含這些修訂版本

新功能

  • 支援表情符號 15.1 和雙向表情符號選取器 UI。使用者只需按一下雙向切換器,即可切換左右方向版本的表情符號。
  • 支援多滑表情符號選取器。長按情侶表情符號即可顯示多人表情符號選取器 (代表零狀態)。使用者輕觸表情符號的左半部後,右下方的表情符號預覽畫面就會隨之更新。使用者選取表情符號中的兩個半部時,預覽畫面會顯示整個表情符號,方便系統輸入該表情符號。

修正錯誤

  • 由於使用 R8 搭配 AGP 7.3 以上版本 (例如 R8 3.3) 時,以及所有使用 AGP 8.1 以上版本 (例如 D8 8.1) 的建構作業,這項作業會自動透過 API 模型建立,因此我們不再手動列出新平台 API 的存取權。針對非使用 AGP 的用戶端,建議更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(If6b4cb/345472586)
  • EmojiPickerView 的分頁選項和指標更新後只要按一下即可更新。(146b02b/288261054)
  • EmojiPickerView 的分頁選項和指標故障。(5e1f14b/273883688)

1.5.0-beta01 版

2024 年 7 月 10 日

發布 androidx.emoji2:emoji2-*:1.5.0-beta01。1.5.0-beta01 版包含這些修訂版本

新功能

  • 支援表情符號 15.1 和雙向表情符號選取 UI。
  • 支援重新設計多色素選取功能。

修正錯誤

  • EmojiPickerView 的分頁選項和指標更新後只要按一下即可更新。(146b02b/288261054)
  • EmojiPickerView 的分頁選項和指標故障。(5e1f14b/273883688)

1.5.0-alpha01 版本

2023 年 12 月 13 日

發布 androidx.emoji2:emoji2-*:1.5.0-alpha011.5.0-alpha01 版包含此連結所列的修訂項目

新功能

  • emoji2-bundled 包含新版表情符號字型,可支援 Emoji 15.1。

API 變更

  • 新增執行器,控管 InitCallback 的回呼執行緒。(I32b67)。
  • BundledEmojiCompatConfig 現在會使用執行程式控制載入執行緒。(I00e81)。

1.4 版

1.4.0 版本

2023 年 8 月 9 日

發布 androidx.emoji2:emoji2-*:1.4.01.4.0 版包含此連結所列的修訂項目

自 1.3.0 版以來的重要異動

1.4.0-rc01 版本

2023 年 7 月 26 日

發布 androidx.emoji2:emoji2-*:1.4.0-rc011.4.0-rc01 版包含此連結所列的修訂項目

API 變更

  • 推出 registerSource 清單 (Iae92f)
  • API 委員會意見回饋:將 TransitionManager.seekTo() 重新命名為 createSeekController()。請調整先前關於將 TransitionManager.seekTo() 新增至 TransitionManager.createSeekController() 的意見。(Idbeb1)。
  • 新增了 ExerciseRouteResult,但該類別不是 DataNoDataConsentRequiredStates 的父類別。將 ExerciseRoute 新增為獨立類別,用於保留路線的位置資料。(I22eed)。
  • 已導入 PagerLayoutInfo,其中包含在 Pager 中測量結果傳遞後收集到的資訊。此外,我們也導入了 PageInfo,亦即 Pager 中針對單一測量網頁提供的相關資訊。(Iad003b/283098900)

修正錯誤

  • 我們已根據 Material3 設計,更新 ButtonIconButtonTextButton 的顏色。ButtonIconButtonTextButton 的語意角色現在可以使用 Modifier.semantics 覆寫。(Ib2495)。
  • 修正了 EmojiPickerView 的分頁選項和指標更新後按一下滑鼠即可更新。(I4db04)。
  • 顯示表情符號挑選器的 FileNotFoundException (I353e4)
  • 使用 EmojiPickerView 時擷取 WindowManager.BadTokenException (I0a144)

1.4.0-beta05 版

2023 年 6 月 7 日

發布 androidx.emoji2:emoji2-*:1.4.0-beta051.4.0-beta05 版包含以下修訂項目。

修正錯誤

  • 已修正 1.3 中引入的錯誤,該錯誤會導致 MetricsAffectingSpans (例如 RelativeSizeSpan) 套用兩次。文字版面配置執行期間,在 EmojiSpan.draw 中再次執行。當 Span 改變任何文字大小參數時,結果的繪製大小會不正確。(b/283208650)。

1.4.0-beta04 版

2023 年 5 月 24 日

發布 androidx.emoji2:emoji2-*:1.4.0-beta041.4.0-beta04 版包含以下修訂項目。

這個版本修正了自 1.0 版以來的錯誤:在字型載入完成之後,使用非主要處理常式的檢視畫面更新表情符號時距時,將擲回例外狀況。目前沒有解決方法。如果您受到此錯誤影響,請升級至此版本或更新版本。

修正錯誤

  • EmojiCompat init 回呼現在會使用每個檢視畫面的處理常式,並尊重不在主執行緒上的檢視畫面。(Iccbcf)。

1.4.0-beta03 版

2023 年 5 月 10 日

發布 androidx.emoji2:emoji2-*:1.4.0-beta031.4.0-beta03 版包含以下修訂項目。

修正錯誤

  • 修正表情符號挑選器巢狀彈出式視窗的當機問題。(0acc8e)。
  • 擲回 EmojiCompat getEmojiStart/getEmojiEnd 中的早期例外狀況。(26177f)。

1.4.0-beta02 版本

2023 年 4 月 19 日

發布 androidx.emoji2:emoji2-*:1.4.0-beta021.4.0-beta02 版包含以下修訂項目。

修正錯誤

  • 更新 Lint 基準檔案 (Iaa212)

1.4.0-beta01 版本

2023 年 4 月 5 日

發布 androidx.emoji2:emoji2-*:1.4.0-beta011.4.0-beta01 版包含此連結所列的修訂項目。

新功能

androidx.emoji2:emoji2-emojipicker

表情符號挑選器是一項 UI 解決方案,提供現代化外觀與風格、最新的表情符號,且容易使用。使用者可以瀏覽及選取表情符號和其變化版本,或選擇最近使用過的表情符號。有了這個程式庫,不同原始設備製造商 (OEM) 的應用程式就能為使用者提供多元包容的整合式表情符號,而且開發人員不必從頭開始打造及維護自己的表情符號挑選器。

最新的表情符號

我們每年都會推出新的表情符號,並選擇性地將表情符號加入表情符號挑選器。為確保回溯相容性,我們會在內部進行準確的表情符號算繪檢查,消除豆腐。確保程式庫在多個 Android 版本和裝置上相容。

固定式變化版本

長按表情符號即可顯示子類選單,例如不同性別或膚色。你選擇的變化版本會儲存在表情符號挑選器中,主面板則會使用最後一個選取的變化版本。透過這項功能,使用者只要輕觸一下即可傳送偏好的表情符號變化版本。

最近使用的表情符號

RecentEmojiProvider 負責在「最近使用」類別中提供表情符號。程式庫提供近期預設的表情符號提供者,符合最常見的用途:

  • 所有選取的表情符號都會儲存在共用偏好設定中。
  • 挑選器最多會顯示 3 列重複選取的表情符號 (已按照時間先後順序排列)。

如果這項預設行為已足夠,就不必設定 setRecentEmojiProvider() 方法。

使用 EmojiCompat

如果應用程式有 EmojiCompat 例項,系統就會在表情符號挑選器中使用該例項,盡可能顯示最多表情符號。如果停用 EmojiCompat,表情符號挑選器仍可正常運作。

如何使用程式庫

如要使用這個程式庫,應用程式開發人員應

  1. androidx.emoji2:emojipicker:$version 匯入 build.gradle

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. 加載表情符號挑選器檢視畫面,並視需要根據每個表情符號儲存格的大小設定 emojiGridRowsemojiGridColumns

    • 如未設定,系統預設為 9 emojiGridColumns,系統會根據上層檢視畫面高度和 emojiGridColumns 計算資料列
    • 您可以將 emojiGridRows 設為浮點值,表示向下捲動時還有更多表情符號 XML 格式
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

程式碼

    val emojiPickerView = EmojiPickerView(context).apply {
        emojiGridColumns = 15
        layoutParams = ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT
        )
    }
    findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
  1. 假設您想將所選表情符號附加到 EditText,請使用 setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. 視需要設定 RecentEmojiProvider,請參閱範例應用程式,瞭解實作範例。

  3. 視需要自訂樣式。建立自己的樣式來覆寫常見主題屬性,並將樣式套用至 EmojiPickerView。舉例來說,覆寫 colorControlNormal 會變更類別圖示顏色。

      <style name="CustomStyle" >
          <item name="colorControlNormal">#FFC0CB</item>
      </style>
      <androidx.emoji2.emojipicker.EmojiPickerView
          android:id="@+id/emoji_picker"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:theme="@style/CustomStyle"
          app:emojiGridColumns="9" />
    

請參閱範例應用程式,瞭解實作範例。

如需完整的 API 介面,請參閱本文

範例應用程式

這個範例應用程式展示了基本用途和其他情境:

  • 已重設「emojiGridRows」和「emojiGridColumns」,因此檢視畫面重新版面配置。
  • 系統會覆寫最近的表情符號提供者,以便按頻率排序。
  • 自訂樣式。

API 變更

表情符號挑選器程式庫已更新,提供下列新 API:

  • EmojiPickerView 類別,可在含有可點擊水平標頭的垂直捲動檢視畫面中,提供最新的表情符號。
  • 可透過 XML 屬性 emojiGridColumnsemojiGridRows,或 setEmojiGridColumns()setEmojiGridRows() 方法,設定表情符號挑選器格線中的欄數和列數。
  • 能夠透過 setOnEmojiPickedListener() 方法設定表情符號挑選事件監聽器。使用者點選任何表情符號時,事件監聽器就會收到通知。
  • 能夠透過 setRecentEmojiProvider() 方法提供近期的表情符號提供者。這是選用函式。如未設定近期表情符號提供者,程式庫會使用預設的近期表情符號提供者。預設行為的定義如下:
    • 所有選取的表情符號都會儲存在共用偏好設定中。
    • 挑選器最多會顯示 3 列重複選取的表情符號,並依時間先後順序顯示。
  • EmojiViewItem 類別,用於保存顯示的表情符號及其表情符號變化版本。
  • RecentEmojiProvider 介面,可實作以提供最近的表情符號清單。recentEmojiProvider 負責提供「最近使用」類別中的表情符號。
  • RecentEmojiAsyncProvider 介面,可實作以提供最近的表情符號清單。RecentEmojiAsyncProvider 負責在「最近使用」類別中提供表情符號。這個介面等同於 RecentEmojiProvider,可讓用戶端覆寫 getRecentEmojiListAsync() 方法以提供最近使用表情符號。
  • RecentEmojiProviderAdapter 類別是 RecentEmojiAsyncProvider 的轉接介面,並實作 RecentEmojiProvider

1.4.0-alpha01 版

2023 年 3 月 22 日

發布 androidx.emoji2:emoji2-*:1.4.0-alpha011.4.0-alpha01 版包含此連結所列的修訂項目

修正錯誤

  • 修正測試、停用構件測試和清理功能。

1.3 版本

1.3.0 版本

2023 年 3 月 22 日

發布 androidx.emoji2:emoji2-*:1.3.01.3.0 版包含此連結所列的修訂項目。

自 1.2.0 版以來的重要異動

  • 這個版本允許 Compose Foundation 1.4.0 及以上版本,以啟用 emoji2 整合功能。
  • 這個程式庫也能將 EmojiSpans 替換為自訂繪圖程式碼,並支援在 Android 中定義的表情符號排除。

1.3.0-rc01 版本

2023 年 3 月 8 日

發布 androidx.emoji2:emoji2-*:1.3.0-rc01查看 1.3.0-rc01 版的修訂項

新功能

  • 這個版本支援 emoji2 Compose 整合功能。

API 變更

  • 取代自訂繪圖程式碼的時距。
  • 查詢系統排除項目。

修正錯誤

  • 修正背景時距未正確套用至 EmojiSopans 後方的錯誤。

1.3.0-beta03 版

2023 年 2 月 23 日

發布 androidx.emoji2:emoji2-bundled:1.3.0-beta03androidx.emoji2:emoji2-views:1.3.0-beta03androidx.emoji2:emoji2-views-helper:1.3.0-beta03

2023 年 2 月 22 日

發布 androidx.emoji2:emoji2:1.3.0-beta03查看 1.3.0-beta03 版的修訂項

新功能

  • 沒有變更。這個版本是準備整合 Compose 的準備工作。

1.3.0-beta02 版

2023 年 2 月 8 日

發布 androidx.emoji2:emoji2-*:1.3.0-beta02查看 1.3.0-beta02 版的修訂項目

新功能

  • 此為穩定版本,可支援 Compose 整合功能。

1.3.0-beta01 版本

2023 年 1 月 25 日

發布了 androidx.emoji2:emoji2-*:1.3.0-beta011.3.0-beta01 版包含以下修訂項目。

新功能

  • 查詢系統排除項目。
  • 取代自訂繪圖程式碼的時距。
  • 修正背景時距未正確套用至 EmojiSopans 後方的錯誤。
  • 這個版本會在 Compose 中新增支援 EmojiCompat 所需的 API。即將推出的版本預計會支援 EmojiCompat。

1.3.0-alpha01 版

2023 年 1 月 11 日

發布了 androidx.emoji2:emoji2-*:1.3.0-alpha011.3.0-alpha01 版包含以下修訂項目。

適用於低階互動的新 API

  • 查詢系統排除項目
  • 取代自訂繪圖程式碼的時距
  • 修正背景時距未正確套用至 EmojiSopans 後方的錯誤。
  • 這個版本會在 Compose 中新增支援 EmojiCompat 所需的 API。即將推出的版本預計會支援 EmojiCompat。

API 變更

  • 將查詢系統排除項目的功能新增至 TypefaceEmojiRasterizer(I5653e)。
  • 新增新的 API EmojiCompat.SpanFactory,可將預設 EmojiSpan 行為替換為自訂繪圖程式碼和大小程式碼 (Ib69d9)。
  • EmojiCompat 新增至 Compose (I96f37b/139326806)。

修正錯誤

1.2 版

1.2.0 版

2022 年 8 月 10 日

發布了 androidx.emoji2:emoji2-*:1.2.01.2.0 版包含此連結所列的修訂項目。

自 1.1.0 版以來的重要變更

本版本的目的在於修正錯誤。自 1.1.0 版以來無新增任何功能或 API。

然而,使用 PrecomputedTextTextView.setText(char[]) 的應用程式應優先改用此版本。

修正的錯誤如下:

  • Emoji2 會捨棄之前已預先計算的文字版面配置,來為 PrecomputedText 新增表情符號。(I47d06b/211231958)
  • 從 Android P 向後移植編輯器當機問題修正至設定使用 emoji2 的 EditText。(Ifd709b/216891011)
  • 修正了 emoji2 載入字型及使用 TextView.setText(char[]) 時的當機問題。(Id511eb/206859724)

1.2.0-rc01 版

2022 年 7 月 27 日

發布了 androidx.emoji2:emoji2-*:1.2.0-rc011.2.0-rc01 版包含以下修訂項目。

  • 自上次 Beta 版發布後沒有任何變更。

1.2.0-beta01 版

2022 年 7 月 13 日

發布了 androidx.emoji2:emoji2-*:1.2.0-beta01查看 1.2.0-beta01 版的修訂項目

新功能

  • 與前一版相比沒有任何變更 (此版本為支援 Appcompat 版本)。

1.2.0-alpha04 版

2022 年 4 月 20 日

發布了 androidx.emoji2:emoji2-*:1.2.0-alpha041.2.0-alpha04 版包含此連結所列的修訂項目。

新功能

  • 此版本沒有任何變更。

1.2.0-alpha03 版

2022 年 4 月 6 日

發布了 androidx.emoji2:emoji2-*:1.2.0-alpha03查看 1.2.0-alpha03 版的修訂項

新功能

  • 與前一版相比沒有任何變更 (此版本為支援 Appcompat 版本)。

1.2.0-alpha02 版

2022 年 3 月 23 日

發布了 androidx.emoji2:emoji2-*:1.2.0-alpha021.2.0-alpha02 版包含以下修訂項目。

修正錯誤

  • Emoji2 會透過捨棄先前預先計算的文字版面配置,為 PrecomputedText 新增表情符號。(I47d06b/211231958)
  • 從 Android P 至 EditText(設定為使用 emoji2),修正了向後移植編輯器當機問題。(Ifd709b/216891011)
  • 修正了 emoji2 載入字型及使用 TextView.setText(char[]) 時的當機問題。(Id511eb/206859724)

1.2.0-alpha01 版

2022 年 2 月 23 日

發布了 androidx.emoji2:emoji2-*:1.2.0-alpha011.2.0-alpha01 版包含以下修訂項目。

自 1.1.0. 以來沒有變更。

1.1

1.1.0 版

2022 年 2 月 23 日

發布了 androidx.emoji2:emoji2-*:1.1.0查看 1.1.0 版的修訂項

自 1.0.0 版以來的重要變更

  • emoji2-bundled 包含表情符號 14 字型
  • 新的 getEmojiMatch API 會傳回鍵盤的正確資訊,以確定表情符號在系統字型下方的 EmojiCompat 字型中的顯示方式
  • 修正 NumberKeyListener 錯誤,讓數字輸入能正確篩選半形字元。

1.1.0-rc01 版本

2022 年 2 月 9 日

發布了 androidx.emoji2:emoji2-*:1.1.0-rc011.1.0-rc01 版包含此連結所列的修訂項目。

新功能

Beta 版沒有任何變更。

相較於 emoji2 1.0.0 的新功能:

  • emoji2-bundled 含有表情符號 14 字型
  • 新的 getEmojiMatch API 會傳回鍵盤的正確資訊,以確定表情符號在系統字型下方的 EmojiCompat 字型中的顯示方式
  • 修正 NumberKeyListener 錯誤,讓數字輸入能正確篩選半形字元

1.1.0-beta01 版

2022 年 1 月 26 日

發布了 androidx.emoji2:emoji2-*:1.1.0-beta01查看 1.1.0-beta01 版的修訂項

修正錯誤

  • androidx-emoji2 beta01 版。alpha01 無變更 (Ic61d9)

1.1.0-alpha01 版

2021 年 12 月 15 日

發布了 androidx.emoji2:emoji2-*:1.1.0-alpha011.1.0-alpha01 版包含以下修訂項目。

新功能

  • emoji2-bundled 含有表情符號 14 字型
  • 新的 getEmojiMatch API 會傳回鍵盤的正確資訊,以確定表情符號在系統字型下方的 EmojiCompat 字型中的顯示方式
  • 修正 NumberKeyListener 錯誤,讓數字輸入能正確篩選半形字元

API 變更

  • 新增 API getEmojiMatch,可讓鍵盤更準確地在 EmojiCompat 中查詢表情符號比對行為。
  • 淘汰 hasEmojiGlyph,因為在測試比平台表情符號字型更早的字型時,其布林值傳回值不正確。以 getEmojiMatch 取代。(Ie693d)

修正錯誤

  • Emoji2 不會納入 NumberKeyListener 的執行個體,並允許 TextView 設定語言代碼。
  • Appcompat 不會包含 NumberKeyListener 的執行個體以傳遞至 setKeyListener 中,這可以保證 TextView 正確設定 NumberKeyListeners 的語言代碼。(Ibf113b/207119921)

1.0

1.0.1 版

2021 年 12 月 15 日

發布了 androidx.emoji2:emoji2-*:1.0.11.0.1 版包含以下修訂項目。

修正錯誤

  • Emoji2 不會包含 NumberKeyListener 的執行個體,並允許 TextView 設定語言代碼。
  • Appcompat 不會包含 NumberKeyListener 的執行個體以傳遞至 setKeyListener 中,這可以保證 TextView 正確設定 NumberKeyListeners 的語言代碼。(Ibf113b/207119921)

1.0.0 版

2021 年 11 月 17 日

發布了 androidx.emoji2:emoji2-*:1.0.01.0.0 版包含此連結所列的修訂項目。

1.0.0 的主要功能

androidx.emoji2 會將 androidx.emoji 換成額外功能:

  • 縮減 APK 大小與 androidx.emoji
  • 自動設定
  • 已新增為 appcompat 1.4 的依附元件

如要進一步瞭解 androidx.emoji2,請參閱「支援現代表情符號」,並觀看 Android 開發人員高峰會的演講影片「在應用程式中顯示所有表情符號」。

1.0.0-rc01 版

2021 年 10 月 27 日

發布了 androidx.emoji2:emoji2-*:1.0.0-rc011.0.0-rc01 版包含以下修訂項目。

  • 自 beta02 以來沒有變更

Emoji2 1.0.0-beta01 版

2021 年 9 月 15 日

發布了 androidx.emoji2:emoji2-*:1.0.0-beta011.0.0-beta01 版包含此連結所列的修訂項目。

API 變更

  • 已將 setLoadingExecutor 新增至 FontRequestEmojiCompatConfig,以取代先前的 setHandler API。這個 API 可讓應用程式設定 FontRequestEmojiCompatConfig 以使用任何背景執行工具。

    這項變更是 androidx.emoji:emoji 的破壞性變更,因此 setHandler 會保留為免人工管理的已淘汰 API 來協助遷移。(I6cd48)

  • EmojiCompat 在 Android 11 上正確設定 EditorInfo.extras

    • 使用 IME 未將 TextText 分類的自訂小工具可能會呼叫 EmojiCompat.updateEditorInfo,藉此通知 IME 支援 EmojiCompat 處理功能。(I1ea9b)

修正錯誤

  • 修正 DefaultEmojiCompatConfig 以正確查詢 API 19 和 28 的表情符號字型提供者。這會修正 emoji2 1.0.0-alpha01 中修正的錯誤。(Ib33d8b/197906329)

1.0.0-alpha03 版

2021 年 6 月 30 日

發布了 androidx.emoji2:emoji2-*:1.0.0-alpha031.0.0-alpha03 版包含以下修訂項目。

新功能

這個版本為錯誤修正穩定版本。

  1. EmojiEditTextHelper 現允許將 null 做為 KeyListener 傳遞。如此一來,平台就能允許將空值套用到支援 EditText 實作的表情符號。
  2. 使用 EmojiCompatInitializer 時可改善初始啟動延遲,以便在第一次活動恢復後觸發。這能讓應用程式啟動作業沒有中斷,避免載入應用程式啟動時從不顯示 UI 的字型。經過短暫的延遲後,EmojiCompat 就會建立執行緒以載入表情符號字型。
  • 為實作延遲功能,現已加入 androidx.emoji2:emoji2androidx.lifecycle:lifecycle-process 的新依附元件。對於已納入生命週期的應用程式 (例如含有 Appcompat 的應用程式),這對 APK 大小的影響幾乎可以忽略。

API 變更

  • 允許 AppCompatEditText 中的空值 KeyListener。這項操作會還原在 1.4.0-alpha01 中新增至 AppCompatEditText 的非空值註解,並在傳遞空值時還原先前的行為。(I21482b/189559345)

修正錯誤

  • 變更 EmojiCompatInitializer,讓第一個 Activity.onResume 之後的字型載入時間延後 500 毫秒。如此一來,活動就能順利執行 Application.onCreateActivity.onCreate,同時確保在啟動應用程式後不久,就會載入表情符號字型。(I4bff7)

1.0.0-alpha02 版

2021 年 6 月 2 日

發布了 androidx.emoji2:emoji2:1.0.0-alpha02androidx.emoji2:emoji2-views:1.0.0-alpha02androidx.emoji2:emoji2-views-helper:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

API 變更

  • 已將 emoji2-views-helper 中的套件重新命名為 androidx.emoji2.viewsintegration。這是 AppCompat 1.4.0-alpha01 的破壞性變更,應用程式必須更新 AppCompat 依附元件,才能使用新的 emoji2 版本。(Ie8397)

1.0.0-alpha01 版

2021 年 5 月 18 日

發布了 androidx.emoji2:emoji2:1.0.0-alpha01androidx.emoji2:emoji2-views:1.0.0-alpha01androidx.emoji2:emoji2-views-helper:1.0.0-alpha011.0.0-alpha01 版包含以下修訂項目。

此初始版本提供的功能

建議為所有應用程式整合 EmojiCompat,以支援 API19 以後的新型表情符號。應用程式中所有使用者產生的內容都含有 🎉。

EmojiCompat 已從 androidx.emoji 構件移至新的 androidx.emoji2,現已在 alpha01 版推出。新構件會取代前一個版本。

AppCompat 1.4.0-alpha01 起,系統會將 emoji2 新增為 AppCompat 的依附元件,並預設啟用 AppCompat 檢視畫面。

emoji2 構件使用 androidx.startup 程式庫推出新的自動設定。您不必再撰寫任何 👨🏽‍💻 程式碼即可顯示 🐻‍❄️。

emoji2 的表情符號變更

  • 已使用 androidx.startup 新增自動設定 EmojiCompatInitializer
  • 新增預設設定,使用服務位置在 DefaultEmojiCompatConfiguration 中找到可下載的字型提供者。
  • 類別已從 androidx.emoji 套件移至 androidx.emoji2
  • EmojiTextView 和相關檢視畫面分割為單獨的構件 emoji2-views。只有在應用程式未使用 appcompat 時,才能使用此功能。
  • 解壓縮輔助程式,可將 emojicompat 整合至自訂檢視畫面,並納入獨立構件 emoji2-views-helper
  • 新增是否可為空值的註解。
  • 即使 EmojiCompat 未初始化 (先前擲回了例外狀況),現在也可以使用 emoji2-views-helper 的輔助程式。

應該新增哪些依附元件?

  • 使用 AppCompat 的應用程式應升級至 appcompat 版本 AppCompat 1.4.0-alpha01 及以上版本。
  • 未採用 AppCompat 的應用程式 (即使用來自平台的 TextView/EditText) 應使用 EmojiTextViewemoji2-views 的相關類別。

如何支援自訂檢視畫面

  • 使用 AppCompat 的應用程式應擴充 AppCompatTextViewAppCompatButton 等,而非 TextView 平台等。
  • 不含 AppCompat 的應用程式應新增 androidx.emoji2:emoji2-views-helper 依附元件,並透過輔助程式整合自訂 TextViewEditText 子類別。

設定自動初始化

  • 應用程式可透過加入資訊清單來停用自動初始化功能:

     <provider
         android:name="androidx.startup.InitializationProvider"
         android:authorities="${applicationId}.androidx-startup"
         android:exported="false"
         tools:node="merge">
         <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
                   tools:node="remove" />
     </provider>
    
  • 這項設定會停用自動設定,然後將自訂設定傳送至 EmojiCompat.init。系統可能會擷取預設設定 DefaultEmojiCompatConfig.create(context) 用以進一步設定,再傳送到 EmojiCompat.init