Emoji2
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 7 月 2 日 | 1.5.0 | - | 1.6.0-beta01 | - |
宣告依附元件
如要新增 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.5.0 版本
2024 年 9 月 4 日
發布 androidx.emoji2:emoji2-*:1.5.0
。1.5.0 版包含這些修訂項目。
自 1.4.0 版以來的重要異動
- 支援表情符號 15.1 和雙向表情符號選取器 UI。使用者只要按一下雙向切換器,即可在表情符號的左右版本之間切換。
- 支援多種膚色的表情符號選取器。長按情侶表情符號會顯示多人表情符號選取器,適用於零狀態。使用者輕觸表情符號的左半部時,右下方的表情符號預覽畫面會隨之更新。使用者選取表情符號的兩半後,右下方的表情符號預覽畫面會顯示完整表情符號,使用者即可輸入。
1.0.0-alpha03 版本
2023 年 3 月 8 日
發布 androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
。查看 1.0.0-alpha03 版的修訂項。
修正錯誤
- 移除不必要的資源,並將程式庫大小縮減約 0.3 MB。
1.0.0-alpha02 版
2023 年 2 月 22 日
發布 androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02
。1.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-alpha01
。1.0.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 推出了表情符號挑選器,這可為使用者提供一致的使用者體驗,讓他們在 Android 作業系統原始設備製造商 (OEM) 的裝置和應用程式上,都能使用最新的表情符號。此外還提供最新的表情符號支援和表情符號挑選器 UI,包括膚色和表情符號相容功能。
API 變更
- 推出了
EmojiPickerView
類別,在具有可點選水平標頭的垂直可捲動檢視畫面中,提供最新的表情符號。 - 透過 XML 屬性
emojiGridColumns
或函式setEmojiGridColumns()
,可設定表情符號挑選器格線欄。 - 透過 XML 屬性
emojiGridRows
或函式setEmojiGridRows()
可設定表情符號選擇器格線列。 - 透過
setOnEmojiPickedListener()
可設定表情符號挑選事件監聽器,當使用者點選任何表情符號時,事件監聽器即會收到通知。 - 透過
setRecentEmojiProvider()
可以找出近期表情符號提供者。這是選用函式。如果不設定近期表情符號提供者,程式庫會使用預設的近期表情符號提供者。預設行為定義如下:1) 系統會將選取的表情符號儲存在每個應用程式層級的共用偏好設定中。2) 挑選器會按時間先後進行反向排序,顯示最多 3 列重複選取的表情符號。 - 推出了
EmojiViewItem
類別,可保存顯示的表情符號及其表情符號變化版本。 - 推出了
RecentEmojiProvider
介面,可用於實作最近的表情符號清單。recentEmojiProvider
負責提供「最近使用」類別中的表情符號。
1.6 版本
1.6.0-beta01 版
2025 年 7 月 2 日
發布 androidx.emoji2:emoji2-*:1.6.0-beta01
。1.6.0-beta01 版包含這些修訂項目。
新功能
- 支援 Emoji 16.0 更新
- 在內容說明中加入「表情符號」後置字串,確保所有表情符號挑選器應用程式的無障礙功能行為一致。
1.6.0-alpha01 版本
2025 年 6 月 4 日
發布 androidx.emoji2:emoji2-*:1.6.0-alpha01
。1.6.0-alpha01 版包含這些修訂項目。
新功能
- 更新 Emoji 16.0 資料 (Ifc878)
- 在內容說明中加入「表情符號」後置字串
修正錯誤
- 這個程式庫現在使用 JSpecify 空值註解,這些註解屬於型別用途。Kotlin 開發人員應使用下列編譯器引數,強制執行正確用法:
-Xjspecify-annotations=strict
、-Xtype-enhancement-improvements-strict-mode
(Id07e7、b/326456246)
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。只要按一下雙向切換器,使用者就能切換表情符號的左右方向。
- 支援多種膚色的表情符號選取器。長按情侶表情符號會顯示多人表情符號選取器,適用於零狀態。使用者輕觸表情符號的左半部時,右下方的表情符號預覽畫面會隨之更新。使用者選取表情符號的兩半時,預覽畫面會顯示完整表情符號,使用者接著就能輸入。
修正錯誤
- 移除手動列出新平台 API 存取權的步驟,因為使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,系統會透過 API 建模自動執行這項作業,而使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 時,所有建構作業都會自動執行這項作業。如果用戶端未使用 AGP,建議更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(If6b4c、b/345472586)
EmojiPickerView
的分頁選取和指標更新會延遲一次點擊。(146b02、b/288261054)- 「
EmojiPickerView
」的分頁標籤選取和指標已損壞。(5e1f14、b/273883688)
1.5.0-beta01 版
2024 年 7 月 10 日
發布 androidx.emoji2:emoji2-*:1.5.0-beta01
。1.5.0-beta01 版包含這些修訂項目。
新功能
- 支援表情符號 15.1 和雙向表情符號選取 UI。
- 支援重新設計的多種膚色選取畫面。
修正錯誤
EmojiPickerView
的分頁選取和指標更新會延遲一次點擊。(146b02、b/288261054)- 「
EmojiPickerView
」的分頁標籤選取和指標已損壞。(5e1f14、b/273883688)
1.5.0-alpha01 版本
2023 年 12 月 13 日
發布 androidx.emoji2:emoji2-*:1.5.0-alpha01
。1.5.0-alpha01 版包含此連結所列的修訂項目。
新功能
emoji2-bundled
包含更新的表情符號字型,可支援 Emoji 15.1。
API 變更
1.4 版
1.4.0 版本
2023 年 8 月 9 日
發布 androidx.emoji2:emoji2-*:1.4.0
。1.4.0 版包含此連結所列的修訂項目。
自 1.3.0 版以來的重要異動
- 推出表情符號挑選器程式庫。詳情請參閱開發人員文件。
1.4.0-rc01 版本
2023 年 7 月 26 日
發布 androidx.emoji2:emoji2-*:1.4.0-rc01
。1.4.0-rc01 版包含此連結所列的修訂項目。
API 變更
- 導入
registerSource
清單 (Iae92f) - API 委員會意見回饋:已將
TransitionManager.seekTo()
重新命名為createSeekController()
。請調整先前有關將TransitionManager.seekTo()
新增至TransitionManager.createSeekController()
的註解。(Idbeb1) - 新增
ExerciseRouteResult
,但這不是Data
、NoData
和ConsentRequiredStates
的超類別。新增ExerciseRoute
做為獨立類別,用於保存路線的位置資料。(I22eed) - 推出
PagerLayoutInfo
,其中包含在 Pager 中通過測量後收集到的資訊。此外,我們也推出了 PageInfo,這是指 Pager 中單一測量頁面的相關資訊。(Iad003、b/283098900)
修正錯誤
- 我們已根據 Material3 設計,更新
Button
、IconButton
和TextButton
的顏色。現在可以使用Modifier.semantics
覆寫Button
、IconButton
和TextButton
的語意角色。(Ib2495) - 修正
EmojiPickerView
的分頁選取和指標更新延遲一個點擊的問題。(I4db04) FileNotFoundException
,顯示表情符號挑選器 (I353e4)- 使用
EmojiPickerView
時擷取WindowManager.BadTokenException
(I0a144)
1.4.0-beta05 版
2023 年 6 月 7 日
發布 androidx.emoji2:emoji2-*:1.4.0-beta05
。1.4.0-beta05 版包含以下修訂項目。
修正錯誤
- 修正 1.3 版中導致
MetricsAffectingSpans
(例如RelativeSizeSpan
) 套用兩次的錯誤。一次是在文字版面配置期間,另一次是在EmojiSpan.draw
內。如果範圍變更了任何文字大小參數,就會顯示大小錯誤的繪圖結果。(b/283208650)
1.4.0-beta04 版
2023 年 5 月 24 日
發布 androidx.emoji2:emoji2-*:1.4.0-beta04
。1.4.0-beta04 版包含以下修訂項目。
這個版本修正了 1.0 版以來存在的問題,也就是在字型載入完成後嘗試更新表情符號跨度時,具有非主要處理常式的檢視區塊會擲回例外狀況。如果受到這個錯誤影響,請升級至這個版本或更新版本,否則沒有其他解決方法。
修正錯誤
EmojiCompat
初始化回呼現在會使用每個檢視區塊的處理常式,並尊重不在主執行緒上的檢視區塊。(Iccbcf)
1.4.0-beta03 版
2023 年 5 月 10 日
發布 androidx.emoji2:emoji2-*:1.4.0-beta03
。1.4.0-beta03 版包含以下修訂項目。
修正錯誤
1.4.0-beta02 版本
2023 年 4 月 19 日
發布 androidx.emoji2:emoji2-*:1.4.0-beta02
。1.4.0-beta02 版包含以下修訂項目。
修正錯誤
- 更新 Lint 基準檔案 (Iaa212)
1.4.0-beta01 版本
2023 年 4 月 5 日
發布 androidx.emoji2:emoji2-*:1.4.0-beta01
。1.4.0-beta01 版包含此連結所列的修訂項目。
新功能
androidx.emoji2:emoji2-emojipicker
表情符號挑選器是 UI 解決方案,提供新穎的外觀和風格、最新的表情符號,以及簡單易用的操作方式。使用者可以瀏覽及選取表情符號和變體,也可以從最近使用的表情符號中選擇。有了這個程式庫,不同原始設備製造商的應用程式就能為使用者提供包容且統一的表情符號體驗,開發人員不必從頭建構及維護自己的表情符號選單。
最新表情符號
每年都會推出新表情符號,我們會選擇性地將這些表情符號加入表情符號挑選器。為確保向後相容性,我們會進行準確的表情符號可轉譯性內部檢查,以消除豆腐。確保程式庫與多個 Android 版本和裝置相容。
固定變數
長按表情符號會顯示變體選單,例如不同性別或膚色。你選擇的變化版本會儲存在表情符號挑選器中,而主要面板會使用最後選取的變化版本。有了這項功能,使用者只要輕觸一下,就能傳送偏好的表情符號變體。
最近使用的表情符號
RecentEmojiProvider
負責提供「最近使用」類別中的表情符號。程式庫提供預設的近期表情符號提供者,可滿足最常見的用途:
- 系統會將選取的表情符號儲存在每個應用程式層級的共用偏好設定中。
- 挑選器會按時間先後進行反向排序,顯示最多 3 列重複選取的表情符號。
如果預設行為符合需求,則不需要設定 setRecentEmojiProvider()
方法。
使用 EmojiCompat
如果應用程式有 EmojiCompat
執行個體,表情符號挑選器就會使用該執行個體盡可能顯示更多表情符號。如果停用 EmojiCompat
,表情符號挑選器仍可正常運作。
如何使用程式庫
如要使用程式庫,應用程式開發人員應
在
build.gradle
中匯入androidx.emoji2:emojipicker:$version
。dependencies { implementation "androidx.emoji2:emojipicker:$version" }
膨脹表情符號挑選器檢視畫面,並視需要根據每個表情符號儲存格的大小設定
emojiGridRows
和emojiGridColumns
- 您可以保留未設定的狀態,預設值為 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" />
- 您可以保留未設定的狀態,預設值為 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)
假設您想將所選表情符號附加至 EditText,請使用
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
(選用) 設定
RecentEmojiProvider
,請參閱範例應用程式瞭解實作範例。視需要自訂樣式。建立自己的樣式來覆寫常見主題屬性,並將樣式套用至
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 屬性
emojiGridColumns
和emojiGridRows
,或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-alpha01
。1.4.0-alpha01 版包含此連結所列的修訂項目。
修正錯誤
- 修正測試、停用不穩定的測試,以及清理作業。
1.3 版本
1.3.0 版本
2023 年 3 月 22 日
發布 androidx.emoji2:emoji2-*:1.3.0
。1.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-beta03
、androidx.emoji2:emoji2-views:1.3.0-beta03
和 androidx.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-beta01
。1.3.0-beta01 版包含以下修訂項目。
新功能
- 查詢系統排除項目。
- 取代自訂繪圖程式碼的時距。
- 修正背景時距未正確套用至
EmojiSopans
後方的錯誤。 - 這個版本會在 Compose 中新增支援
EmojiCompat
所需的 API。即將推出的版本預計會支援 EmojiCompat。
1.3.0-alpha01 版
2023 年 1 月 11 日
發布了 androidx.emoji2:emoji2-*:1.3.0-alpha01
。1.3.0-alpha01 版包含以下修訂項目。
適用於低階互動的新 API
- 查詢系統排除項目
- 取代自訂繪圖程式碼的時距
- 修正背景時距未正確套用至
EmojiSopans
後方的錯誤。 - 這個版本會在 Compose 中新增支援
EmojiCompat
所需的 API。即將推出的版本預計會支援 EmojiCompat。
API 變更
- 將查詢系統排除項目的功能新增至
TypefaceEmojiRasterizer
(I5653e)。 - 新增新的 API
EmojiCompat.SpanFactory
,可將預設EmojiSpan
行為替換為自訂繪圖程式碼和大小程式碼 (Ib69d9)。 - 將
EmojiCompat
新增至 Compose (I96f37、b/139326806)。
修正錯誤
- Emoji2 現在可正確繪製
BackgroundSpan
的背景 (Ide6a8、b/230525134)。 - 完成適用於 1.5.0-beta01 版的 AppCompat API (I2a43d、b/236866227)。
1.2 版
1.2.0 版
2022 年 8 月 10 日
發布了 androidx.emoji2:emoji2-*:1.2.0
。1.2.0 版包含此連結所列的修訂項目。
自 1.1.0 版以來的重要變更
本版本的目的在於修正錯誤。自 1.1.0 版以來無新增任何功能或 API。
然而,使用 PrecomputedText
或 TextView.setText(char[])
的應用程式應優先改用此版本。
修正的錯誤如下:
Emoji2
會捨棄之前已預先計算的文字版面配置,來為PrecomputedText
新增表情符號。(I47d06、b/211231958)- 從 Android P 向後移植編輯器當機問題修正至設定使用 emoji2 的
EditText
。(Ifd709、b/216891011) - 修正了 emoji2 載入字型及使用
TextView.setText(char[])
時的當機問題。(Id511e、b/206859724)
1.2.0-rc01 版
2022 年 7 月 27 日
發布了 androidx.emoji2:emoji2-*:1.2.0-rc01
。1.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-alpha04
。1.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-alpha02
。1.2.0-alpha02 版包含以下修訂項目。
修正錯誤
- Emoji2 會透過捨棄先前預先計算的文字版面配置,為
PrecomputedText
新增表情符號。(I47d06、b/211231958) - 從 Android P 至 EditText(設定為使用 emoji2),修正了向後移植編輯器當機問題。(Ifd709、b/216891011)
- 修正了 emoji2 載入字型及使用
TextView.setText(char[])
時的當機問題。(Id511e、b/206859724)
1.2.0-alpha01 版
2022 年 2 月 23 日
發布了 androidx.emoji2:emoji2-*:1.2.0-alpha01
。1.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-rc01
。1.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-alpha01
。1.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
的語言代碼。(Ibf113、b/207119921)
1.0
1.0.1 版
2021 年 12 月 15 日
發布了 androidx.emoji2:emoji2-*:1.0.1
。1.0.1 版包含以下修訂項目。
修正錯誤
Emoji2
不會包含NumberKeyListener
的執行個體,並允許TextView
設定語言代碼。- Appcompat 不會包含
NumberKeyListener
的執行個體以傳遞至setKeyListener
中,這可以保證TextView
正確設定NumberKeyListeners
的語言代碼。(Ibf113、b/207119921)
1.0.0 版
2021 年 11 月 17 日
發布了 androidx.emoji2:emoji2-*:1.0.0
。1.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-rc01
。1.0.0-rc01 版包含以下修訂項目。
- 自 beta02 以來沒有變更
Emoji2 1.0.0-beta01 版
2021 年 9 月 15 日
發布了 androidx.emoji2:emoji2-*:1.0.0-beta01
。1.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)
- 使用 IME 未將 TextText 分類的自訂小工具可能會呼叫
修正錯誤
- 修正
DefaultEmojiCompatConfig
以正確查詢 API 19 和 28 的表情符號字型提供者。這會修正 emoji2 1.0.0-alpha01 中修正的錯誤。(Ib33d8、b/197906329)
1.0.0-alpha03 版
2021 年 6 月 30 日
發布了 androidx.emoji2:emoji2-*:1.0.0-alpha03
。1.0.0-alpha03 版包含以下修訂項目。
新功能
這個版本為錯誤修正穩定版本。
- EmojiEditTextHelper 現允許將
null
做為 KeyListener 傳遞。如此一來,平台就能允許將空值套用到支援 EditText 實作的表情符號。 - 使用 EmojiCompatInitializer 時可改善初始啟動延遲,以便在第一次活動恢復後觸發。這能讓應用程式啟動作業沒有中斷,避免載入應用程式啟動時從不顯示 UI 的字型。經過短暫的延遲後,EmojiCompat 就會建立執行緒以載入表情符號字型。
- 為實作延遲功能,現已加入
androidx.emoji2:emoji2
中androidx.lifecycle:lifecycle-process
的新依附元件。對於已納入生命週期的應用程式 (例如含有 Appcompat 的應用程式),這對 APK 大小的影響幾乎可以忽略。
API 變更
- 允許 AppCompatEditText 中的空值 KeyListener。這項操作會還原在 1.4.0-alpha01 中新增至 AppCompatEditText 的非空值註解,並在傳遞空值時還原先前的行為。(I21482、b/189559345)
修正錯誤
- 變更 EmojiCompatInitializer,讓第一個
Activity.onResume
之後的字型載入時間延後 500 毫秒。如此一來,活動就能順利執行Application.onCreate
和Activity.onCreate
,同時確保在啟動應用程式後不久,就會載入表情符號字型。(I4bff7)
1.0.0-alpha02 版
2021 年 6 月 2 日
發布了 androidx.emoji2:emoji2:1.0.0-alpha02
、androidx.emoji2:emoji2-views:1.0.0-alpha02
和 androidx.emoji2:emoji2-views-helper:1.0.0-alpha02
。1.0.0-alpha02 版本包含以下修訂項目。
API 變更
- 已將
emoji2-views-helper
中的套件重新命名為androidx.emoji2.viewsintegration
。這是 AppCompat1.4.0-alpha01
的破壞性變更,應用程式必須更新 AppCompat 依附元件,才能使用新的 emoji2 版本。(Ie8397)
1.0.0-alpha01 版
2021 年 5 月 18 日
發布了 androidx.emoji2:emoji2:1.0.0-alpha01
、androidx.emoji2:emoji2-views:1.0.0-alpha01
和 androidx.emoji2:emoji2-views-helper:1.0.0-alpha01
。1.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
) 應使用EmojiTextView
及emoji2-views
的相關類別。
如何支援自訂檢視畫面
- 使用 AppCompat 的應用程式應擴充
AppCompatTextView
、AppCompatButton
等,而非TextView
平台等。 - 不含 AppCompat 的應用程式應新增
androidx.emoji2:emoji2-views-helper
依附元件,並透過輔助程式整合自訂TextView
或EditText
子類別。
設定自動初始化
應用程式可透過加入資訊清單來停用自動初始化功能:
<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
。