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-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.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 以上版本。詳情請參閱這篇文章。(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
的顏色。Button
、IconButton
和TextButton
的語意角色現在可以使用Modifier.semantics
覆寫。(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
中再次執行。當 Span 改變任何文字大小參數時,結果的繪製大小會不正確。(b/283208650)。
1.4.0-beta04 版
2023 年 5 月 24 日
發布 androidx.emoji2:emoji2-*:1.4.0-beta04
。1.4.0-beta04 版包含以下修訂項目。
這個版本修正了自 1.0 版以來的錯誤:在字型載入完成之後,使用非主要處理常式的檢視畫面更新表情符號時距時,將擲回例外狀況。目前沒有解決方法。如果您受到此錯誤影響,請升級至此版本或更新版本。
修正錯誤
EmojiCompat
init 回呼現在會使用每個檢視畫面的處理常式,並尊重不在主執行緒上的檢視畫面。(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 解決方案,提供現代化外觀與風格、最新的表情符號,且容易使用。使用者可以瀏覽及選取表情符號和其變化版本,或選擇最近使用過的表情符號。有了這個程式庫,不同原始設備製造商 (OEM) 的應用程式就能為使用者提供多元包容的整合式表情符號,而且開發人員不必從頭開始打造及維護自己的表情符號挑選器。
最新的表情符號
我們每年都會推出新的表情符號,並選擇性地將表情符號加入表情符號挑選器。為確保回溯相容性,我們會在內部進行準確的表情符號算繪檢查,消除豆腐。確保程式庫在多個 Android 版本和裝置上相容。
固定式變化版本
長按表情符號即可顯示子類選單,例如不同性別或膚色。你選擇的變化版本會儲存在表情符號挑選器中,主面板則會使用最後一個選取的變化版本。透過這項功能,使用者只要輕觸一下即可傳送偏好的表情符號變化版本。
最近使用的表情符號
RecentEmojiProvider
負責在「最近使用」類別中提供表情符號。程式庫提供近期預設的表情符號提供者,符合最常見的用途:
- 所有選取的表情符號都會儲存在共用偏好設定中。
- 挑選器最多會顯示 3 列重複選取的表情符號 (已按照時間先後順序排列)。
如果這項預設行為已足夠,就不必設定 setRecentEmojiProvider()
方法。
使用 EmojiCompat
如果應用程式有 EmojiCompat
例項,系統就會在表情符號挑選器中使用該例項,盡可能顯示最多表情符號。如果停用 EmojiCompat
,表情符號挑選器仍可正常運作。
如何使用程式庫
如要使用這個程式庫,應用程式開發人員應
將
androidx.emoji2:emojipicker:$version
匯入build.gradle
。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
。