Emoji2
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Alpha Release |
---|---|---|---|---|
2 luglio 2025 | 1.5.0 | - | 1.6.0-beta01 | - |
Dichiarazione di dipendenze
Per aggiungere una dipendenza da Emoji2, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle
per
la tua app o il tuo modulo:
Alla moda
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") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Emoji2 Emojipicker versione 1.0
Versione 1.5.0
4 settembre 2024
androidx.emoji2:emoji2-*:1.5.0
viene ritirata. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
- Supporto dell'emoji 15.1 e dell'interfaccia utente del selettore di emoji bidirezionale. Un semplice clic sul selettore bidirezionale consente agli utenti di passare dalla versione delle emoji rivolta a sinistra a quella rivolta a destra.
- Supporta il selettore di emoji con più tonalità della pelle. La pressione prolungata sulle emoji di coppia rivela un selettore di emoji per più persone per lo stato zero. Quando l'utente tocca la metà sinistra di un'emoji, l'anteprima dell'emoji in basso a destra viene aggiornata di conseguenza. Quando l'utente seleziona entrambe le metà di un'emoji, l'anteprima dell'emoji in basso a destra mostra l'emoji intera e l'utente può inserirla.
Versione 1.0.0-alpha03
8 marzo 2023
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
viene ritirata. La versione 1.0.0-alpha03 contiene questi commit.
Correzioni di bug
- Sono state rimosse risorse inutili e la dimensione della libreria è stata ridotta di circa 0,3 MB.
Versione 1.0.0-alpha02
22 febbraio 2023
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02
viene ritirata. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- È stata aggiunta una nuova API per i client Java per poter fornire emoji recenti. (I39d10)
Correzioni di bug
- Aggiorna le risorse emoji per supportare le emoji 15.0 (Ib4eb3)
- Quando scegli un'emoji dalla finestra popup, aggiorna tutte le emoji identiche con quella appena selezionata (ad eccezione della riga delle emoji recenti). Annuncia anche l'emoji quando fai clic. (I892c6)
- Attendi il caricamento di emojicompat prima di mostrare
EmojiPickerView
. (I29e03)
Versione 1.0.0-alpha01
25 gennaio 2023
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01
viene ritirata. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stato introdotto un selettore di emoji che offre un'esperienza utente coerente con le emoji più recenti su app e dispositivi OEM con sistema operativo Android. Fornisce il supporto per le emoji più recenti e l'interfaccia utente del selettore di emoji, incluse le varianti di tonalità della pelle e il supporto della compatibilità delle emoji.
Modifiche alle API
- È stata introdotta la classe
EmojiPickerView
che fornisce emoji aggiornate in una visualizzazione verticale scorrevole con un'intestazione orizzontale selezionabile. - Le colonne della griglia del selettore di emoji possono essere impostate tramite l'attributo XML
emojiGridColumns
o la funzionesetEmojiGridColumns()
. - Le righe della griglia del selettore di emoji possono essere impostate tramite l'attributo XML
emojiGridRows
o la funzionesetEmojiGridRows()
. - Il listener di emoji selezionate può essere impostato tramite
setOnEmojiPickedListener()
e riceverà una notifica ogni volta che l'utente fa clic su un'emoji. - Il fornitore di emoji recente può essere fornito con
setRecentEmojiProvider()
. Questa è una funzione facoltativa. Se il fornitore di emoji recenti non è impostato, la libreria utilizzerà un fornitore di emoji recenti predefinito. Il comportamento predefinito è definito come segue: 1) tutte le emoji selezionate verranno salvate a livello di app nelle preferenze condivise. 2) Il selettore mostrerà al massimo tre righe di emoji selezionate, deduplicate, in ordine cronologico inverso. - È stata introdotta la classe
EmojiViewItem
che contiene l'emoji visualizzata e le relative varianti. - È stata introdotta l'interfaccia
RecentEmojiProvider
, che può essere implementata per fornire un elenco di emoji recenti.recentEmojiProvider
è responsabile della fornitura delle emoji nella categoria "Usate di recente".
Versione 1.6
Versione 1.6.0-beta01
2 luglio 2025
androidx.emoji2:emoji2-*:1.6.0-beta01
viene ritirata. La versione 1.6.0-beta01 contiene questi commit.
Nuove funzionalità
- Supporto degli aggiornamenti di Emoji 16.0
- Aggiungi il suffisso "emoji" alla descrizione dei contenuti per assicurarti un comportamento di accessibilità coerente in tutte le app di selezione delle emoji.
Versione 1.6.0-alpha01
4 giugno 2025
androidx.emoji2:emoji2-*:1.6.0-alpha01
viene ritirata. La versione 1.6.0-alpha01 contiene questi commit.
Nuove funzionalità
- Aggiornamenti dei dati delle emoji 16.0 (Ifc878)
- Aggiunta del suffisso "emoji" alla descrizione dei contenuti
Correzioni di bug
- Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare i seguenti argomenti del compilatore per garantire un utilizzo corretto:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
(Id07e7, b/326456246)
Versione 1.5
Versione 1.5.0
4 settembre 2024
androidx.emoji2:emoji2-*:1.5.0
viene ritirata. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
- Supporto dell'emoji 15.1 e dell'interfaccia utente del selettore di emoji bidirezionale. Un semplice clic sul selettore bidirezionale consente agli utenti di passare dalla versione delle emoji rivolta a sinistra a quella rivolta a destra.
- Supporta il selettore di emoji con più tonalità della pelle. La pressione prolungata sulle emoji di coppia rivela un selettore di emoji per più persone per lo stato zero. Quando l'utente tocca la metà sinistra di un'emoji, l'anteprima dell'emoji in basso a destra viene aggiornata di conseguenza. Quando l'utente seleziona entrambe le metà di un'emoji, l'anteprima dell'emoji in basso a destra mostra l'emoji intera e l'utente può inserirla.
Versione 1.5.0-rc01
21 agosto 2024
androidx.emoji2:emoji2-*:1.5.0-rc01
viene ritirata. La versione 1.5.0-rc01 contiene questi commit.
Nuove funzionalità
- Supporto dell'emoji 15.1 e dell'interfaccia utente del selettore di emoji bidirezionale. Un semplice clic sul selettore bidirezionale consente agli utenti di passare dalla versione delle emoji rivolta a sinistra a quella rivolta a destra e viceversa.
- Supporta il selettore di emoji con più tonalità della pelle. La pressione prolungata sulle emoji di coppia rivela un selettore di emoji per più persone per lo stato zero. Quando l'utente tocca la metà sinistra di un'emoji, l'anteprima dell'emoji in basso a destra viene aggiornata di conseguenza. Quando l'utente seleziona entrambe le metà di un'emoji, l'anteprima mostra l'emoji intera e l'utente può inserirla.
Correzioni di bug
- È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché questa avviene automaticamente tramite la modellazione delle API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I client che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (If6b4c, b/345472586)
- La selezione delle schede e gli indicatori di
EmojiPickerView
vengono aggiornati con un clic di ritardo. (146b02, b/288261054) - La selezione e l'indicatore delle schede di
EmojiPickerView
non funzionano. (5e1f14, b/273883688)
Versione 1.5.0-beta01
10 luglio 2024
androidx.emoji2:emoji2-*:1.5.0-beta01
viene ritirata. La versione 1.5.0-beta01 contiene questi commit.
Nuove funzionalità
- Supporto dell'emoji 15.1 e dell'interfaccia utente di selezione bidirezionale delle emoji.
- Supporto della riprogettazione della selezione di più tonalità della pelle.
Correzioni di bug
- La selezione delle schede e gli indicatori di
EmojiPickerView
vengono aggiornati con un clic di ritardo. (146b02, b/288261054) - La selezione e l'indicatore delle schede di
EmojiPickerView
non funzionano. (5e1f14, b/273883688)
Versione 1.5.0-alpha01
13 dicembre 2023
androidx.emoji2:emoji2-*:1.5.0-alpha01
viene ritirata. La versione 1.5.0-alpha01 contiene questi commit.
Nuove funzionalità
emoji2-bundled
contiene un carattere emoji aggiornato per supportare Emoji 15.1.
Modifiche alle API
- Aggiungi esecutori per controllare il thread di callback per
InitCallback
. (I32b67) BundledEmojiCompatConfig
ora richiede un executor per controllare i thread di caricamento. (I00e81)
Versione 1.4
Versione 1.4.0
9 agosto 2023
androidx.emoji2:emoji2-*:1.4.0
viene ritirata. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
- È stata introdotta la libreria del selettore di emoji. Per ulteriori dettagli, consulta la documentazione per gli sviluppatori.
Versione 1.4.0-rc01
26 luglio 2023
androidx.emoji2:emoji2-*:1.4.0-rc01
viene ritirata. La versione 1.4.0-rc01 contiene questi commit.
Modifiche alle API
- Introduzione dell'elenco
registerSource
(Iae92f) - Feedback del Consiglio API:
TransitionManager.seekTo()
è stato rinominato increateSeekController()
. Modifica il commento precedente sull'aggiunta diTransitionManager.seekTo()
aTransitionManager.createSeekController()
. (Idbeb1) - È stato aggiunto
ExerciseRouteResult
, che non è la superclasse diData
,NoData
eConsentRequiredStates
. È stata aggiunta la classe autonomaExerciseRoute
, che contiene i dati sulla posizione per l'itinerario. (I22eed) - È stato introdotto
PagerLayoutInfo
con le informazioni raccolte dopo un passaggio di misurazione in Pager. È stata introdotta anche PageInfo, le informazioni su una singola pagina misurata in Pager. (Iad003, b/283098900)
Correzioni di bug
- Abbiamo aggiornato i colori per
Button
,IconButton
eTextButton
in linea con il design Material3. Il ruolo semantico perButton
,IconButton
eTextButton
ora può essere sostituito utilizzandoModifier.semantics
. (Ib2495) - È stato risolto il problema relativo alla selezione delle schede e agli aggiornamenti degli indicatori di
EmojiPickerView
con un clic di ritardo. (I4db04) FileNotFoundException
sulla visualizzazione del selettore di emoji (I353e4)- Catch the
WindowManager.BadTokenException
when usingEmojiPickerView
(I0a144)
Versione 1.4.0-beta05
7 giugno 2023
androidx.emoji2:emoji2-*:1.4.0-beta05
viene ritirata. La versione 1.4.0-beta05 contiene questi commit.
Correzioni di bug
- È stato corretto un bug introdotto nella versione 1.3 che causava l'applicazione doppia di
MetricsAffectingSpans
comeRelativeSizeSpan
. Una volta durante il layout del testo e di nuovo all'interno diEmojiSpan.draw
. Il risultato era un disegno di dimensioni errate, visibile se uno dei parametri di dimensione del testo era stato modificato dallo span. (b/283208650)
Versione 1.4.0-beta04
24 maggio 2023
androidx.emoji2:emoji2-*:1.4.0-beta04
viene ritirata. La versione 1.4.0-beta04 contiene questi commit.
Questa release corregge un bug presente dalla versione 1.0 in cui le visualizzazioni con un gestore non principale generavano un'eccezione quando si tentava di aggiornare gli intervalli di emoji dopo il completamento del caricamento del carattere. Non esiste una soluzione alternativa. Se il bug ti riguarda, esegui l'upgrade a questa versione o a una successiva.
Correzioni di bug
- I callback di inizializzazione di
EmojiCompat
ora utilizzeranno l'handler di ogni visualizzazione, rispettando le visualizzazioni non presenti nel thread principale. (Iccbcf)
Versione 1.4.0-beta03
10 maggio 2023
androidx.emoji2:emoji2-*:1.4.0-beta03
viene ritirata. La versione 1.4.0-beta03 contiene questi commit.
Correzioni di bug
- Correzione dell'arresto anomalo della visualizzazione popup nidificata del selettore di emoji. (0acc8e)
- Genera eccezioni anticipate in
EmojiCompat getEmojiStart/getEmojiEnd
. (26177f)
Versione 1.4.0-beta02
19 aprile 2023
androidx.emoji2:emoji2-*:1.4.0-beta02
viene ritirata. La versione 1.4.0-beta02 contiene questi commit.
Correzioni di bug
- Aggiorna i file di riferimento di lint (Iaa212)
Versione 1.4.0-beta01
5 aprile 2023
androidx.emoji2:emoji2-*:1.4.0-beta01
viene ritirata. La versione 1.4.0-beta01 contiene questi commit.
Nuove funzionalità
androidx.emoji2:emoji2-emojipicker
Il selettore di emoji è una soluzione UI che offre un aspetto moderno, emoji aggiornate e facilità d'uso. Gli utenti possono sfogliare e selezionare le emoji e le relative varianti oppure scegliere tra le emoji usate di recente. Con questa libreria, le app di diversi OEM possono offrire ai propri utenti un'esperienza inclusiva e unificata con le emoji senza che gli sviluppatori debbano creare e gestire il proprio selettore di emoji da zero.
Emoji aggiornate
Ogni anno vengono rilasciate nuove emoji e le includeremo selettivamente nel selettore di emoji. Per garantire la compatibilità con le versioni precedenti, eseguiamo internamente un controllo accurato del rendering delle emoji per eliminare i caratteri tofu. In questo modo, la libreria sarà compatibile con più versioni e dispositivi Android.
Varianti persistenti
Se tieni premuto a lungo un'emoji, viene visualizzato un menu di varianti, ad esempio generi o tonalità della pelle diversi. La variante scelta verrà salvata nel selettore di emoji e l'ultima variante selezionata verrà utilizzata nel riquadro principale. Con questa funzionalità, gli utenti possono inviare le loro varianti di emoji preferite con un solo tocco.
Emoji recenti
RecentEmojiProvider
è responsabile della fornitura delle emoji nella categoria "Usate di recente". La libreria ha un provider di emoji recenti predefinito che soddisfa il caso d'uso più comune:
- Tutte le emoji selezionate vengono salvate a livello di app nelle preferenze condivise.
- Il selettore mostra al massimo tre righe di emoji selezionate, deduplicate, in ordine cronologico inverso.
Se questo comportamento predefinito è sufficiente, non è necessario impostare il metodo setRecentEmojiProvider()
.
Utilizzare EmojiCompat
Se l'app ha un'istanza EmojiCompat
, questa verrà utilizzata nel selettore di emoji per visualizzare il maggior numero possibile di emoji. Se EmojiCompat
è disattivato, il selettore di emoji continuerà a funzionare correttamente.
Come utilizzare la libreria
Per utilizzare la libreria, uno sviluppatore di app deve
Importa
androidx.emoji2:emojipicker:$version
inbuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Gonfia la visualizzazione del selettore di emoji e, se vuoi, imposta
emojiGridRows
eemojiGridColumns
in base alle dimensioni desiderate di ogni cella di emoji- Puoi lasciarli non impostati. Il valore predefinito è 9
emojiGridColumns
. Le righe verranno calcolate in base all'altezza della visualizzazione principale e aemojiGridColumns
. - Puoi impostare
emojiGridRows
come float per indicare che ci sono altre emoji se scorri verso il basso in XML
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
- Puoi lasciarli non impostati. Il valore predefinito è 9
nel codice
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)
Supponendo che tu voglia aggiungere le emoji selezionate a un EditText, utilizza
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
Se vuoi, imposta
RecentEmojiProvider
. Per un esempio di implementazione, consulta l'app di esempio.(Facoltativo) Personalizza gli stili. Crea il tuo stile per ignorare gli attributi del tema comuni e applicarlo a
EmojiPickerView
. Ad esempio, la sovrascrittura dicolorControlNormal
cambierà il colore dell'icona della categoria.<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" />
Per un esempio di implementazione, consulta l'app di esempio.
Una superficie API completa è disponibile qui.
App di esempio
Questa app di esempio mostra i casi d'uso di base e i seguenti scenari aggiuntivi:
- Il layout della visualizzazione è stato modificato perché
emojiGridRows
eemojiGridColumns
sono stati reimpostati. - Il fornitore di emoji recenti viene sostituito per ordinare in base alla frequenza.
- Personalizzazione dello stile.
Modifiche alle API
La libreria Emoji Picker è stata aggiornata con le seguenti nuove API:
- La classe
EmojiPickerView
, che fornisce emoji aggiornate in una visualizzazione verticale scorrevole con un'intestazione orizzontale su cui è possibile fare clic. - La possibilità di impostare il numero di colonne e righe nella griglia del selettore di emoji tramite gli attributi XML
emojiGridColumns
eemojiGridRows
o i metodisetEmojiGridColumns()
esetEmojiGridRows()
. - La possibilità di impostare un listener di emoji selezionate tramite il metodo
setOnEmojiPickedListener()
. L'ascoltatore riceverà una notifica ogni volta che l'utente fa clic su un'emoji. - La possibilità di fornire un fornitore di emoji recente tramite il metodo
setRecentEmojiProvider()
. Questa è una funzione facoltativa. Se il fornitore di emoji recenti non è impostato, la libreria utilizzerà un fornitore di emoji recenti predefinito. Il comportamento predefinito è definito come segue:- Tutte le emoji selezionate verranno salvate a livello di app nelle preferenze condivise.
- Il selettore mostrerà al massimo tre righe di emoji selezionate, deduplicate, in ordine cronologico inverso.
- La classe
EmojiViewItem
, che contiene l'emoji visualizzata e le relative varianti. - L'interfaccia
RecentEmojiProvider
, che può essere implementata per fornire un elenco di emoji recenti.recentEmojiProvider
è responsabile della fornitura delle emoji nella categoria "Usate di recente". - L'interfaccia
RecentEmojiAsyncProvider
, che può essere implementata per fornire un elenco di emoji recenti.RecentEmojiAsyncProvider
è responsabile della fornitura delle emoji nella categoria "Usate di recente". Questa interfaccia è equivalente aRecentEmojiProvider
che consente ai client di eseguire l'override del metodogetRecentEmojiListAsync()
per fornire emoji recenti. - La classe
RecentEmojiProviderAdapter
, che è un adattatore perRecentEmojiAsyncProvider
e implementaRecentEmojiProvider
.
Versione 1.4.0-alpha01
22 marzo 2023
androidx.emoji2:emoji2-*:1.4.0-alpha01
viene ritirata. La versione 1.4.0-alpha01 contiene questi commit.
Correzioni di bug
- Correzione dei test, disattivazione dei test non deterministici e pulizia.
Versione 1.3
Versione 1.3.0
22 marzo 2023
androidx.emoji2:emoji2-*:1.3.0
viene ritirata. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- Questa release consente a Compose Foundation
1.4.0
e versioni successive di attivare l'integrazione di emoji2. - Consente inoltre funzionalità per la sostituzione di
EmojiSpans
con codice di disegno personalizzato, nonché il supporto per le esclusioni di emoji definite su Android.
Versione 1.3.0-rc01
8 marzo 2023
androidx.emoji2:emoji2-*:1.3.0-rc01
viene ritirata. La versione 1.3.0-rc01 contiene questi commit.
Nuove funzionalità
- Questa versione supporta l'integrazione della composizione di emoji2.
Modifiche alle API
- Sostituisci gli intervalli per il codice di disegno personalizzato.
- Esecuzione di query sulle esclusioni del sistema.
Correzioni di bug
- È stato corretto un bug per cui gli intervalli di sfondo non venivano applicati correttamente dietro
EmojiSopans
.
Versione 1.3.0-beta03
23 febbraio 2023
androidx.emoji2:emoji2-bundled:1.3.0-beta03
, androidx.emoji2:emoji2-views:1.3.0-beta03
e androidx.emoji2:emoji2-views-helper:1.3.0-beta03
sono rilasciati.
22 febbraio 2023
androidx.emoji2:emoji2:1.3.0-beta03
viene ritirata. La versione 1.3.0-beta03 contiene questi commit.
Nuove funzionalità
- Nessuna modifica. Questa release serve a preparare l'integrazione della composizione.
Versione 1.3.0-beta02
8 febbraio 2023
androidx.emoji2:emoji2-*:1.3.0-beta02
viene ritirata. La versione 1.3.0-beta02 contiene questi commit.
Nuove funzionalità
- Questa release è una stabilizzazione per supportare l'integrazione della composizione.
Versione 1.3.0-beta01
25 gennaio 2023
androidx.emoji2:emoji2-*:1.3.0-beta01
viene ritirata. La versione 1.3.0-beta01 contiene questi commit.
Nuove funzionalità
- Esecuzione di query sulle esclusioni del sistema.
- Sostituzione degli intervalli per il codice di disegno personalizzato.
- È stato corretto un bug per cui gli intervalli di sfondo non venivano applicati correttamente dietro
EmojiSopans
. - Questa release aggiunge le API necessarie per supportare
EmojiCompat
in Compose. Il supporto per la composizione per la compatibilità delle emoji sarà disponibile in una release futura.
Versione 1.3.0-alpha01
11 gennaio 2023
androidx.emoji2:emoji2-*:1.3.0-alpha01
viene ritirata. La versione 1.3.0-alpha01 contiene questi commit.
Nuove API per interazioni di basso livello
- Esecuzione di query sulle esclusioni del sistema
- Sostituzione degli span per il codice di disegno personalizzato
- È stato corretto un bug per cui gli intervalli di sfondo non venivano applicati correttamente dietro
EmojiSopans
. - Questa release aggiunge le API necessarie per supportare
EmojiCompat
in Compose. Il supporto per la composizione per la compatibilità delle emoji sarà disponibile in una release futura.
Modifiche alle API
- È stata aggiunta la possibilità di eseguire query sulle esclusioni di sistema in
TypefaceEmojiRasterizer
. (I5653e) - È stata aggiunta una nuova API
EmojiCompat.SpanFactory
per sostituire il comportamento predefinitoEmojiSpan
con codice di disegno e dimensionamento personalizzato. (Ib69d9) - Aggiunta di
EmojiCompat
a Compose (I96f37, b/139326806)
Correzioni di bug
- Emoji2 ora disegnerà correttamente gli sfondi da
BackgroundSpan
. (Ide6a8, b/230525134) - Finalizza le API AppCompat per la versione 1.5.0-beta01 (I2a43d, b/236866227)
Versione 1.2
Versione 1.2.0
10 agosto 2022
androidx.emoji2:emoji2-*:1.2.0
viene ritirata. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
Questa è una release di correzione dei bug. Nessuna nuova funzionalità o API aggiunta dalla versione 1.1.0.
Tuttavia, le app che utilizzano PrecomputedText
o TextView.setText(char[])
devono
dare la priorità all'aggiornamento a questa versione.
Sono stati corretti i seguenti bug:
Emoji2
aggiungerà emoji aPrecomputedText
eliminando il layout di testo precalcolato in precedenza. (I47d06, b/211231958)- Esegui il backport della correzione dell'arresto anomalo dell'editor da Android P a
EditText
configurato per l'utilizzo di emoji2. (Ifd709, b/216891011) - È stato risolto il problema di arresto anomalo quando emoji2 carica il carattere e viene utilizzato
TextView.setText(char[])
. (Id511e, b/206859724)
Versione 1.2.0-rc01
27 luglio 2022
androidx.emoji2:emoji2-*:1.2.0-rc01
viene ritirata. La versione 1.2.0-rc01 contiene questi commit.
- Nessuna modifica rispetto all'ultima versione beta.
Versione 1.2.0-beta01
13 luglio 2022
androidx.emoji2:emoji2-*:1.2.0-beta01
viene ritirata. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Nessuna modifica rispetto all'ultima versione (questa release supporta la release AppCompat).
Versione 1.2.0-alpha04
20 aprile 2022
androidx.emoji2:emoji2-*:1.2.0-alpha04
viene ritirata. La versione 1.2.0-alpha04 contiene questi commit.
Nuove funzionalità
- Nessuna modifica in questa release.
Versione 1.2.0-alpha03
6 aprile 2022
androidx.emoji2:emoji2-*:1.2.0-alpha03
viene ritirata. La versione 1.2.0-alpha03 contiene questi commit.
Nuove funzionalità
- Nessuna modifica rispetto all'ultima versione (questa release supporta la release appcompat).
Versione 1.2.0-alpha02
23 marzo 2022
androidx.emoji2:emoji2-*:1.2.0-alpha02
viene ritirata. La versione 1.2.0-alpha02 contiene questi commit.
Correzioni di bug
- Emoji2 aggiungerà emoji a
PrecomputedText
eliminando il layout del testo precalcolato in precedenza. (I47d06, b/211231958) - Esegui il backporting della correzione dell'arresto anomalo dell'editor da Android P a EditText configurato per l'utilizzo di emoji2. (Ifd709, b/216891011)
- È stato risolto il problema di arresto anomalo quando emoji2 carica il carattere e viene utilizzato
TextView.setText(char[])
. (Id511e, b/206859724)
Versione 1.2.0-alpha01
23 febbraio 2022
androidx.emoji2:emoji2-*:1.2.0-alpha01
viene ritirata. La versione 1.2.0-alpha01 contiene questi commit.
Nessuna modifica dalla versione 1.1.0.
1,1
Versione 1.1.0
23 febbraio 2022
androidx.emoji2:emoji2-*:1.1.0
viene ritirata. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- emoji2-bundled contiene il carattere emoji 14
- La nuova API
getEmojiMatch
restituisce informazioni accurate per le tastiere per decidere come verrà visualizzata un'emoji in presenza di un carattere compatibile con le emoji che si trova dietro il carattere di sistema - Correzione di bug per
NumberKeyListener
che consente di filtrare correttamente i caratteri durante l'inserimento delle cifre.
Versione 1.1.0-rc01
9 febbraio 2022
androidx.emoji2:emoji2-*:1.1.0-rc01
viene ritirata. La versione 1.1.0-rc01 contiene questi commit.
Nuove funzionalità
Nessuna modifica rispetto alla versione beta.
Nuove funzionalità rispetto a emoji2 1.0.0:
emoji2-bundled
contiene il carattere emoji 14- La nuova API
getEmojiMatch
restituisce informazioni accurate per le tastiere per decidere come verrà visualizzata un'emoji in presenza di un carattere compatibile con le emoji che si trova dietro il carattere di sistema - Correzione di bug per
NumberKeyListener
che consente di filtrare correttamente i caratteri durante l'inserimento delle cifre
Versione 1.1.0-beta01
26 gennaio 2022
androidx.emoji2:emoji2-*:1.1.0-beta01
viene ritirata. La versione 1.1.0-beta01 contiene questi commit.
Correzioni di bug
- androidx-emoji2 beta01 release. Nessuna modifica rispetto ad alpha01 (Ic61d9)
Versione 1.1.0-alpha01
15 dicembre 2021
androidx.emoji2:emoji2-*:1.1.0-alpha01
viene ritirata. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
emoji2-bundled
contiene il carattere emoji 14- La nuova API
getEmojiMatch
restituisce informazioni accurate per le tastiere per decidere come verrà visualizzata un'emoji in presenza di un carattere compatibile con le emoji che si trova dietro il carattere di sistema - Correzione di bug per
NumberKeyListener
che consente di filtrare correttamente i caratteri durante l'inserimento delle cifre
Modifiche alle API
- Aggiungi la nuova API
getEmojiMatch
per consentire alle tastiere di cercare con maggiore precisione il comportamento di corrispondenza delle emoji in emojicompat. - Ritira
hasEmojiGlyph
, in quanto il valore booleano restituito è impreciso quando viene testato rispetto a un carattere precedente al carattere emoji della piattaforma. Sostituisci congetEmojiMatch
. (Ie693d)
Correzioni di bug
- Emoji2 non eseguirà il wrapping delle istanze di
NumberKeyListener
, consentendo la configurazione delle impostazioni internazionali da parte diTextView
. - Appcompat non eseguirà il wrapping delle istanze di
NumberKeyListener
passate asetKeyListener
, consentendo aTextView
di configurare correttamente le impostazioni internazionali suNumberKeyListeners
. (Ibf113, b/207119921)
1.0
Versione 1.0.1
15 dicembre 2021
androidx.emoji2:emoji2-*:1.0.1
viene ritirata. La versione 1.0.1 contiene questi commit.
Correzioni di bug
Emoji2
non eseguirà il wrapping delle istanze diNumberKeyListener
, consentendo la configurazione delle impostazioni internazionali da parte diTextView
.- Appcompat non eseguirà il wrapping delle istanze di
NumberKeyListener
passate asetKeyListener
, consentendo aTextView
di configurare correttamente le impostazioni internazionali suNumberKeyListeners
. (Ibf113, b/207119921)
Versione 1.0.0
17 novembre 2021
androidx.emoji2:emoji2-*:1.0.0
viene ritirata. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
androidx.emoji2 sostituisce androidx.emoji con funzionalità aggiuntive:
- Riduzione delle dimensioni dell'APK rispetto ad androidx.emoji
- Configurazione automatica
- Aggiunta come dipendenza ad appcompat 1.4
Per saperne di più su androidx.emoji2, consulta Supporto delle emoji moderne e la nostra conferenza all'Android Dev Summit Displaying ALL the emojis in your app Android Dev.
Versione 1.0.0-rc01
27 ottobre 2021
androidx.emoji2:emoji2-*:1.0.0-rc01
viene ritirata. La versione 1.0.0-rc01 contiene questi commit.
- Nessuna modifica dalla versione beta02.
Emoji2 versione 1.0.0-beta01
15 settembre 2021
androidx.emoji2:emoji2-*:1.0.0-beta01
viene ritirata. La versione 1.0.0-beta01 contiene questi commit.
Modifiche alle API
Aggiunta di
setLoadingExecutor
aFontRequestEmojiCompatConfig
, che sostituisce l'API precedente disetHandler
. Questa API consente alle app di configurareFontRequestEmojiCompatConfig
per utilizzare qualsiasi executor in background.Questa modifica è una modifica che causa interruzioni rispetto a
androidx.emoji:emoji
, quindisetHandler
viene mantenuta come API deprecata no-op per facilitare la migrazione. (I6cd48)EmojiCompat imposta correttamente
EditorInfo.extras
su Android 11- I widget personalizzati che utilizzano l'IME senza sottoclassi EditText possono chiamare
EmojiCompat.updateEditorInfo
per comunicare all'IME che supportano l'elaborazione di EmojiCompat. (I1ea9b)
- I widget personalizzati che utilizzano l'IME senza sottoclassi EditText possono chiamare
Correzioni di bug
- Correggi
DefaultEmojiCompatConfig
per cercare correttamente il provider di caratteri emoji sulle API 19 e 28. Questo aggiornamento corregge un bug introdotto in emoji2 1.0.0-alpha01. (Ib33d8, b/197906329)
Versione 1.0.0-alpha03
30 giugno 2021
androidx.emoji2:emoji2-*:1.0.0-alpha03
viene ritirata. La versione 1.0.0-alpha03 contiene questi commit.
Nuove funzionalità
Questa release include correzioni di bug e miglioramenti della stabilità.
- EmojiEditTextHelper ora consente di passare
null
come KeyListener. Ciò consente di applicare il comportamento della piattaforma che consente i valori null alle implementazioni EditText che supportano le emoji. - Quando si utilizza EmojiCompatInitializer, il ritardo di avvio iniziale viene migliorato per attivarsi dopo la ripresa della prima attività. In questo modo, l'avvio dell'app avviene senza contese ed evita di caricare il carattere per gli avvii di app che non mostrano mai un'interfaccia utente. Dopo un breve ritardo, EmojiCompat creerà un thread per caricare il carattere emoji.
- Per implementare il ritardo, viene aggiunta una nuova dipendenza da
androidx.lifecycle:lifecycle-process
a partire daandroidx.emoji2:emoji2
. L'impatto sulle dimensioni dell'APK sarà trascurabile per le app che includono già il ciclo di vita (ad esempio le app con appcompat).
Modifiche alle API
- Consenti KeyListener nullo in AppCompatEditText. In questo modo viene invertita l'annotazione non nulla aggiunta ad AppCompatEditText nella versione 1.4.0-alpha01 e viene ripristinato il comportamento precedente quando viene passato null. (I21482, b/189559345)
Correzioni di bug
- Modifica EmojiCompatInitializer per ritardare il caricamento dei caratteri fino a
500 ms dopo il primo
Activity.onResume
. Ciò consente a un'attività di eseguireApplication.onCreate
eActivity.onCreate
senza contese, garantendo comunque che il carattere emoji venga caricato poco dopo l'avvio dell'app. (I4bff7)
Versione 1.0.0-alpha02
2 giugno 2021
androidx.emoji2:emoji2:1.0.0-alpha02
, androidx.emoji2:emoji2-views:1.0.0-alpha02
e androidx.emoji2:emoji2-views-helper:1.0.0-alpha02
sono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- Pacchetto rinominato in
emoji2-views-helper
inandroidx.emoji2.viewsintegration
. Si tratta di una modifica che causa interruzioni per AppCompat1.4.0-alpha01
e le app devono assicurarsi che la dipendenza AppCompat venga aggiornata per utilizzare la nuova versione di emoji2. (Ie8397)
Versione 1.0.0-alpha01
18 maggio 2021
androidx.emoji2:emoji2:1.0.0-alpha01
, androidx.emoji2:emoji2-views:1.0.0-alpha01
e androidx.emoji2:emoji2-views-helper:1.0.0-alpha01
sono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.
Funzionalità di questa release iniziale
L'integrazione di emojicompat è consigliata per tutte le app per supportare le emoji moderne a partire dall'API19. Tutti i contenuti generati dagli utenti nella tua app contengono 🎉.
EmojiCompat è stato spostato dagli artefatti androidx.emoji
ai nuovi androidx.emoji2
, ora in alpha01. I nuovi artefatti sostituiscono la versione precedente.
emoji2
viene aggiunto come dipendenza ad AppCompat a partire da AppCompat 1.4.0-alpha01
ed è attivato per impostazione predefinita per le visualizzazioni AppCompat.
L'artefatto emoji2
introduce una nuova configurazione automatica utilizzando la libreria androidx.startup
. Non devi più scrivere codice 👨🏽💻 per visualizzare 🐻❄️.
Modifiche in emoji2 rispetto a emoji
- È stata aggiunta una nuova configurazione automatica
EmojiCompatInitializer
utilizzandoandroidx.startup
. - È stata aggiunta una nuova configurazione predefinita che utilizza la posizione del servizio per trovare un fornitore di caratteri scaricabili in
DefaultEmojiCompatConfiguration
. - Le classi sono state spostate dal pacchetto
androidx.emoji
aandroidx.emoji2
. - Dividi
EmojiTextView
e le visualizzazioni correlate in un artefatto separatoemoji2-views
. Questa opzione deve essere utilizzata solo se la tua app non utilizza appcompat. - Helper estratti per l'integrazione di emojicompat nelle visualizzazioni personalizzate in un artefatto separato
emoji2-views-helper
. - Sono state aggiunte annotazioni di nullabilità.
- Ora gli helper in
emoji2-views-helper
possono essere utilizzati anche quandoEmojiCompat
non è inizializzato (in precedenza generavano un'eccezione).
Quale dipendenza devi aggiungere?
- Le app con AppCompat devono eseguire l'upgrade alla versione AppCompat
1.4.0-alpha01
o successive. - Le app senza AppCompat che utilizzano
TextView
/EditText
dalla piattaforma devono utilizzareEmojiTextView
e le classi correlate diemoji2-views
.
Come supportare le visualizzazioni personalizzate
- Le app con AppCompat devono estendere
AppCompatTextView
,AppCompatButton
e così via anzichéTextView
e così via. - Le app senza AppCompat devono aggiungere la dipendenza
androidx.emoji2:emoji2-views-helper
e utilizzare gli helper per l'integrazione con le sottoclassiTextView
oEditText
personalizzate.
Configurazione dell'inizializzazione automatica
Le app possono disattivare l'inizializzazione automatica aggiungendo questo al manifest:
<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>
In questo modo la configurazione automatica viene disattivata e puoi passare una configurazione personalizzata a
EmojiCompat.init
. La configurazione predefinita del sistema può essere recuperataDefaultEmojiCompatConfig.create(context)
per un'ulteriore configurazione prima di passare aEmojiCompat.init
.