Emoji2
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2023 年 12 月 13 日 | 1.4.0 | - | - | 1.5.0-alpha01 版本 |
宣告依附元件
如要新增 Emoji2 的依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle
檔案中,新增您需要的構件依附元件:
Groovy
dependencies { def emoji2_version = "1.4.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.4.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)。
修正錯誤
- 更新表情符號資源以支援 emoji 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-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.createSeekController()
」中新增「TransitionManager.seekTo()
」的留言。(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
中。結果的繪圖大小不正確,如果 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
,表情符號挑選器仍能正常運作。
如何使用程式庫
如要使用這個程式庫,應用程式開發人員必須
在
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 撰寫整合功能。
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
。