Emoji2
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
2 lipca 2025 r. | 1.5.0 | - | 1.6.0-beta01 | - |
Deklarowanie zależności
Aby dodać zależność od Emoji2, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle
aplikacji lub modułu:
Odlotowe
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") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Emoji2 Emojipicker w wersji 1.0
Wersja 1.5.0
4 września 2024 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.5.0
Wersja 1.5.0 zawiera te zmiany.
Ważne zmiany od wersji 1.4.0
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Proste kliknięcie przełącznika dwukierunkowego umożliwia użytkownikom przełączanie się między wersjami emotikonów skierowanymi w lewo i w prawo.
- obsługa selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w przypadku stanu zerowego. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w podglądzie w prawym dolnym rogu pojawi się cały emotikon, który będzie można wstawić.
Wersja 1.0.0-alpha03
8 marca 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
Wersja 1.0.0-alpha03 zawiera te zmiany.
Poprawki błędów
- Usunięto niepotrzebne zasoby i zmniejszono rozmiar biblioteki o ok.0,3 M.
Wersja 1.0.0-alpha02
22 lutego 2023 roku
Zostanie wycofaneandroidx.emoji2:emoji2-emojipicker:1.0.0-alpha02
Wersja 1.0.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy nowy interfejs API dla klientów Javy, aby mogli oni udostępniać najnowsze emoji. (I39d10)
Poprawki błędów
- Aktualizacja zasobów emotikonów w celu obsługi emotikonów w wersji 15.0 (Ib4eb3)
- Gdy wybierzesz emotikon w wyskakującym okienku, wszystkie identyczne emotikony zostaną zastąpione nowo wybranym emotikonem (z wyjątkiem wiersza z ostatnio używanymi emotikonami). Odczytuj też emotikony po kliknięciu. (I892c6)
- Zanim wyświetlisz znak
EmojiPickerView
, poczekaj, aż załaduje się emojicompat. (I29e03)
Wersja 1.0.0-alpha01
25 stycznia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-emojipicker:1.0.0-alpha01
Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Wprowadziliśmy selektor emoji, który zapewnia spójność wrażeń użytkowników dzięki najnowszym emoji na urządzeniach OEM z Androidem i w aplikacjach. Zapewnia obsługę najnowszych emotikonów i interfejs selektora emotikonów, w tym warianty odcieni skóry i obsługę zgodności emotikonów.
Zmiany w interfejsie API
- Wprowadzono klasę
EmojiPickerView
, która zapewnia aktualne emotikony w widoku przewijanym w pionie z nagłówkiem poziomym, w który można kliknąć. - Kolumny siatki selektora emoji można ustawić za pomocą atrybutu XML
emojiGridColumns
lub funkcjisetEmojiGridColumns()
. - Wiersze siatki selektora emoji można ustawić za pomocą atrybutu XML
emojiGridRows
lub funkcjisetEmojiGridRows()
. - Słuchacza wybranego emotikona można ustawić za pomocą
setOnEmojiPickedListener()
. Będzie on powiadamiany za każdym razem, gdy użytkownik kliknie dowolny emotikon. - Ostatni dostawca emotikonów może być oznaczony symbolem
setRecentEmojiProvider()
. Jest to funkcja opcjonalna. Jeśli dostawca ostatnio używanych emoji nie jest ustawiony, biblioteka użyje domyślnego dostawcy ostatnio używanych emoji. Domyślne działanie jest zdefiniowane w ten sposób: 1) wszystkie wybrane emoji zostaną zapisane na poziomie poszczególnych aplikacji w ustawieniach udostępnionych. 2) selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej (bez duplikatów). - Wprowadzono klasę
EmojiViewItem
, która zawiera wyświetlany emotikon i jego warianty. - Wprowadzono interfejs
RecentEmojiProvider
, który można wdrożyć, aby wyświetlać listę ostatnio używanych emoji.recentEmojiProvider
odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”.
Wersja 1.6
Wersja 1.6.0-beta01
2 lipca 2025 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.6.0-beta01
Wersja 1.6.0-beta01 zawiera te zmiany.
Nowe funkcje
- Obsługa aktualizacji emotikonów w wersji 16.0
- Dodaj do opisu treści sufiks „emoji”, aby zapewnić spójne działanie funkcji ułatwień dostępu we wszystkich aplikacjach do wybierania emoji.
Wersja 1.6.0-alpha01
4 czerwca 2025 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.6.0-alpha01
Wersja 1.6.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Aktualizacje danych Emoji 16.0 (Ifc878)
- Dodawanie do opisu treści sufiksu „emoji”
Poprawki błędów
- Ta biblioteka używa teraz adnotacji o wartości null JSpecify, które są używane w typach. Deweloperzy Kotlin powinni używać tych argumentów kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
(Id07e7, b/326456246)
Wersja 1.5
Wersja 1.5.0
4 września 2024 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.5.0
Wersja 1.5.0 zawiera te zmiany.
Ważne zmiany od wersji 1.4.0
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Proste kliknięcie przełącznika dwukierunkowego umożliwia użytkownikom przełączanie się między wersjami emotikonów skierowanymi w lewo i w prawo.
- obsługa selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w przypadku stanu zerowego. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w podglądzie w prawym dolnym rogu pojawi się cały emotikon, który będzie można wstawić.
Wersja 1.5.0-rc01
21 sierpnia 2024 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.5.0-rc01
Wersja 1.5.0-rc01 zawiera te zmiany.
Nowe funkcje
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Proste kliknięcie przełącznika dwukierunkowego umożliwia użytkownikom przełączanie się między wersjami emotikonów skierowanymi w lewo i w prawo.
- obsługa selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w przypadku stanu zerowego. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w podglądzie pojawi się cały emotikon, który będzie można wstawić.
Poprawki błędów
- Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 z AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
EmojiPickerView
’s tab selection and indicator updates one click behind. (146b02, b/288261054)EmojiPickerView
nie działa wybór karty ani wskaźnik. (5e1f14, b/273883688)
Wersja 1.5.0-beta01
10 lipca 2024 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.5.0-beta01
Wersja 1.5.0-beta01 zawiera te zmiany.
Nowe funkcje
- Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu wyboru emotikonów.
- Zmiana projektu obsługi wyboru wielu odcieni skóry.
Poprawki błędów
EmojiPickerView
’s tab selection and indicator updates one click behind. (146b02, b/288261054)EmojiPickerView
nie działa wybór karty ani wskaźnik. (5e1f14, b/273883688)
Wersja 1.5.0-alpha01
13 grudnia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.5.0-alpha01
Wersja 1.5.0-alpha01 zawiera te zmiany.
Nowe funkcje
emoji2-bundled
zawiera zaktualizowaną czcionkę emotikonów, która obsługuje Emoji 15.1.
Zmiany w interfejsie API
- Dodaj wykonawców, aby kontrolować wątek wywołania zwrotnego dla
InitCallback
. (I32b67) BundledEmojiCompatConfig
teraz przyjmuje wykonawcę do sterowania wątkami ładowania. (I00e81)
Wersja 1.4
Wersja 1.4.0
9 sierpnia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0
Wersja 1.4.0 zawiera te zmiany.
Ważne zmiany od wersji 1.3.0
- Wprowadzono bibliotekę selektora emotikonów. Więcej informacji znajdziesz w dokumentacji dla programistów.
Wersja 1.4.0-rc01
26 lipca 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-rc01
Wersja 1.4.0-rc01 zawiera te zmiany.
Zmiany w interfejsie API
- Wprowadzenie listy
registerSource
(Iae92f) - Opinia Rady ds. API: nazwa
TransitionManager.seekTo()
została zmieniona nacreateSeekController()
. Proszę zmień poprzedni komentarz dotyczący dodaniaTransitionManager.seekTo()
doTransitionManager.createSeekController()
. (Idbeb1) - Dodano
ExerciseRouteResult
, która nie jest nadklasą dlaData
,NoData
iConsentRequiredStates
. DodanoExerciseRoute
jako samodzielną klasę, która zawiera dane o lokalizacji na trasie. (I22eed) - Wprowadzono
PagerLayoutInfo
z informacjami zebranymi po przejściu testu w aplikacji Pager. Wprowadziliśmy też PageInfo, czyli informacje o pojedynczej zmierzonej stronie w Pagerze. (Iad003, b/283098900)
Poprawki błędów
- Zaktualizowaliśmy kolory
Button
,IconButton
iTextButton
zgodnie z zasadami Material3. Rolę semantyczną elementówButton
,IconButton
iTextButton
można teraz zastąpić za pomocą atrybutuModifier.semantics
. (Ib2495) - Naprawiono problem z wyborem karty i aktualizacją wskaźnika w
EmojiPickerView
, które były opóźnione o 1 kliknięcie. (I4db04) FileNotFoundException
– wyświetlanie selektora emotikonów (I353e4)- Wykorzystaj
WindowManager.BadTokenException
podczas korzystania zEmojiPickerView
(I0a144)
Wersja 1.4.0-beta05
7 czerwca 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta05
Wersja 1.4.0-beta05 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy błąd wprowadzony w wersji 1.3, który powodował dwukrotne zastosowanie
MetricsAffectingSpans
, np.RelativeSizeSpan
. raz podczas układania tekstu i ponownie w elemencieEmojiSpan.draw
. Wynik był nieprawidłowo skalowany, co było widoczne, jeśli którykolwiek z parametrów rozmiaru tekstu został zmieniony przez zakres. (b/283208650)
Wersja 1.4.0-beta04
24 maja 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta04
Wersja 1.4.0-beta04 zawiera te zmiany.
Ta wersja rozwiązuje błąd występujący od wersji 1.0, który powodował, że widoki z obsługą inną niż główna zgłaszały wyjątek podczas próby zaktualizowania zakresów emoji po zakończeniu ładowania czcionki. Nie ma obejścia tego problemu. Jeśli występuje on u Ciebie, zaktualizuj oprogramowanie do tej wersji lub nowszej.
Poprawki błędów
- Wywołania zwrotne inicjowania
EmojiCompat
będą teraz korzystać z procedury obsługi z każdego widoku, z uwzględnieniem widoków, które nie znajdują się w głównym wątku. (Iccbcf)
Wersja 1.4.0-beta03
10 maja 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta03
Wersja 1.4.0-beta03 zawiera te zmiany.
Poprawki błędów
- Naprawiono awarię zagnieżdżonego widoku wyskakującego okienka selektora emotikonów. (0acc8e)
- Wyrzucaj wczesne wyjątki w
EmojiCompat getEmojiStart/getEmojiEnd
. (26177f)
Wersja 1.4.0-beta02
19 kwietnia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta02
Wersja 1.4.0-beta02 zawiera te zmiany.
Poprawki błędów
- Aktualizacja plików podstawowych lint (Iaa212)
Wersja 1.4.0-beta01
5 kwietnia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta01
Wersja 1.4.0-beta01 zawiera te zmiany.
Nowe funkcje
androidx.emoji2:emoji2-emojipicker
Selektor emotikonów to rozwiązanie interfejsu, które zapewnia nowoczesny wygląd i styl, aktualne emotikony oraz łatwość obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty, a także wybierać spośród ostatnio używanych emotikonów. Dzięki tej bibliotece aplikacje różnych producentów OEM mogą zapewniać użytkownikom spójne i jednolite wrażenia związane z emoji bez konieczności tworzenia i utrzymywania własnego selektora emoji od zera.
Aktualne emotikony
Co roku pojawiają się nowe emotikony, które będziemy selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, przeprowadzamy wewnętrzną kontrolę renderowania emoji, aby wyeliminować tofu. Dzięki temu biblioteka będzie zgodna z wieloma wersjami Androida i urządzeniami.
Warianty przyklejone
Gdy przytrzymasz emotikon, wyświetli się menu z jego wariantami, np. różnymi płciami lub odcieniami skóry. Wybrany wariant zostanie zapisany w selektorze emotikonów, a ostatnio wybrany wariant będzie używany w panelu głównym. Dzięki tej funkcji użytkownicy mogą wysyłać preferowane warianty emoji jednym kliknięciem.
Ostatnio używane emotikony
RecentEmojiProvider
odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę ostatnio używanych emoji, który spełnia wymagania większości typowych przypadków użycia:
- Wszystkie wybrane emoji są zapisywane na poziomie poszczególnych aplikacji w ustawieniach udostępnionych.
- Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej. Duplikaty są usuwane.
Jeśli to domyślne działanie jest wystarczające, nie musisz ustawiać metody setRecentEmojiProvider()
.
Praca z biblioteką EmojiCompat
Jeśli aplikacja ma instancję EmojiCompat
, będzie ona używana w selektorze emotikonów do renderowania jak największej liczby emotikonów. Jeśli EmojiCompat
jest wyłączona, selektor emotikonów nadal będzie działać prawidłowo.
Jak korzystać z biblioteki
Aby korzystać z biblioteki, deweloper aplikacji powinien:
Zaimportuj
androidx.emoji2:emojipicker:$version
wbuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Rozwiń widok selektora emotikonów i opcjonalnie ustaw wartości
emojiGridRows
iemojiGridColumns
na podstawie żądanego rozmiaru każdej komórki emotikonu.- Możesz pozostawić je bez ustawienia. Domyślna wartość to 9
emojiGridColumns
. Liczba wierszy zostanie obliczona na podstawie wysokości widoku nadrzędnego iemojiGridColumns
. - Możesz ustawić wartość
emojiGridRows
jako liczbę zmiennoprzecinkową, aby wskazać, że po przewinięciu w dół pojawi się więcej emoji.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
- Możesz pozostawić je bez ustawienia. Domyślna wartość to 9
w kodzie,
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)
Jeśli chcesz dodać wybrane emotikony do pola EditText, użyj tego kodu:
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
Opcjonalnie ustaw
RecentEmojiProvider
. Przykład implementacji znajdziesz w aplikacji przykładowej.Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić typowe atrybuty motywu i zastosować go do elementu
EmojiPickerView
. Na przykład zastąpieniecolorControlNormal
zmieni kolor ikony kategorii.<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" />
Przykład implementacji znajdziesz w przykładowej aplikacji.
Pełną listę interfejsów API znajdziesz tutaj.
Przykładowa aplikacja
Ta przykładowa aplikacja pokazuje podstawowe przypadki użycia oraz te dodatkowe scenariusze:
- Widok został ponownie rozmieszczony, ponieważ
emojiGridRows
iemojiGridColumns
zostały zresetowane. - Ostatnio używane emotikony są zastępowane sortowaniem według częstotliwości.
- Dostosowywanie stylu.
Zmiany w interfejsie API
Biblioteka selektora emoji została zaktualizowana o te nowe interfejsy API:
- Klasa
EmojiPickerView
, która zapewnia aktualne emotikony w widoku z możliwością przewijania w pionie i klikalnym nagłówkiem poziomym. - Możliwość ustawienia liczby kolumn i wierszy w siatce selektora emoji za pomocą atrybutów XML
emojiGridColumns
iemojiGridRows
lub metodsetEmojiGridColumns()
isetEmojiGridRows()
. - Możliwość ustawienia odbiorcy wybranego emotikona za pomocą metody
setOnEmojiPickedListener()
. Słuchacz otrzyma powiadomienie, gdy użytkownik kliknie dowolną emotikonę. - Możliwość podania ostatniego dostawcy emoji za pomocą metody
setRecentEmojiProvider()
. Jest to funkcja opcjonalna. Jeśli nie ustawisz ostatnio używanego dostawcy emoji, biblioteka użyje domyślnego dostawcy. Domyślne działanie jest zdefiniowane w ten sposób:- Wszystkie wybrane emoji zostaną zapisane na poziomie aplikacji w ustawieniach udostępnionych.
- Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej. Duplikaty zostaną usunięte.
- Klasa
EmojiViewItem
, która zawiera wyświetlany emotikon i jego warianty. - Interfejs
RecentEmojiProvider
, który można wdrożyć, aby wyświetlać listę ostatnio używanych emotikonów.recentEmojiProvider
odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”. - Interfejs
RecentEmojiAsyncProvider
, który można wdrożyć, aby wyświetlać listę ostatnio używanych emotikonów.RecentEmojiAsyncProvider
odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem interfejsuRecentEmojiProvider
, który umożliwia klientom zastąpienie metodygetRecentEmojiListAsync()
, aby udostępniać ostatnio używane emoji. - Klasa
RecentEmojiProviderAdapter
, która jest adapterem dlaRecentEmojiAsyncProvider
i implementujeRecentEmojiProvider
.
Wersja 1.4.0-alpha01
22 marca 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-alpha01
Wersja 1.4.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Naprawianie testów, wyłączanie testów niestabilnych i czyszczenie.
Wersja 1.3
Wersja 1.3.0
22 marca 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0
Wersja 1.3.0 zawiera te zmiany.
Ważne zmiany od wersji 1.2.0
- Ta wersja umożliwia integrację emoji2 w Compose Foundation
1.4.0
i nowszych. - Umożliwia też zastępowanie znaku
EmojiSpans
niestandardowym kodem rysowania oraz obsługuje wykluczenia emotikonów zdefiniowane na Androidzie.
Wersja 1.3.0-rc01
8 marca 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-rc01
Wersja 1.3.0-rc01 zawiera te zmiany.
Nowe funkcje
- Ta wersja obsługuje integrację tworzenia emoji2.
Zmiany w interfejsie API
- Zastąp zakresy niestandardowym kodem rysowania.
- Wykonywanie zapytań dotyczących wykluczeń systemowych.
Poprawki błędów
- Rozwiązaliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem
EmojiSopans
.
Wersja 1.3.0-beta03
23 lutego 2023 r.
androidx.emoji2:emoji2-bundled:1.3.0-beta03
, androidx.emoji2:emoji2-views:1.3.0-beta03
i androidx.emoji2:emoji2-views-helper:1.3.0-beta03
są zwalniane.
22 lutego 2023 roku
Zostanie wycofaneandroidx.emoji2:emoji2:1.3.0-beta03
Wersja 1.3.0-beta03 zawiera te zmiany.
Nowe funkcje
- Brak zmian. Ta wersja ma na celu przygotowanie do integracji z komponowaniem.
Wersja 1.3.0-beta02
8 lutego 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-beta02
Wersja 1.3.0-beta02 zawiera te zmiany.
Nowe funkcje
- Ta wersja stabilizuje działanie, aby umożliwić integrację z biblioteką Jetpack Compose.
Wersja 1.3.0-beta01
25 stycznia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-beta01
Wersja 1.3.0-beta01 zawiera te zmiany.
Nowe funkcje
- Wykonywanie zapytań dotyczących wykluczeń systemowych.
- Zastępowanie zakresów kodem rysowania niestandardowego.
- Rozwiązaliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem
EmojiSopans
. - Ta wersja dodaje interfejsy API niezbędne do obsługi
EmojiCompat
w Compose. W najbliższej wersji wprowadzimy obsługę tworzenia emotikonów w trybie zgodności.
Wersja 1.3.0-alpha01
11 stycznia 2023 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-alpha01
Wersja 1.3.0-alpha01 zawiera te zmiany.
Nowe interfejsy API do interakcji niskiego poziomu
- Wykluczenia zapytań systemowych
- Zastępowanie zakresów w kodzie rysowania niestandardowego
- Rozwiązaliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem
EmojiSopans
. - Ta wersja dodaje interfejsy API niezbędne do obsługi
EmojiCompat
w Compose. W najbliższej wersji wprowadzimy obsługę tworzenia emotikonów w trybie zgodności.
Zmiany w interfejsie API
- Dodaliśmy możliwość wysyłania zapytań o wykluczenia systemowe do
TypefaceEmojiRasterizer
. (I5653e) - Dodano nowy interfejs API
EmojiCompat.SpanFactory
, który umożliwia zastąpienie domyślnego działaniaEmojiSpan
niestandardowym kodem rysowania i określania rozmiaru. (Ib69d9) - Dodano
EmojiCompat
do funkcji Pisanie (I96f37, b/139326806)
Poprawki błędów
- Emoji2 będzie teraz prawidłowo rysować tła z
BackgroundSpan
. (Ide6a8, b/230525134) - Finalizacja interfejsów API AppCompat w wersji 1.5.0-beta01 (I2a43d, b/236866227)
Wersja 1.2
Wersja 1.2.0
10 sierpnia 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0
Wersja 1.2.0 zawiera te zmiany.
Ważne zmiany od wersji 1.1.0
Jest to wersja poprawiająca błędy. Od wersji 1.1.0 nie dodano żadnych nowych funkcji ani interfejsów API.
Aplikacje korzystające z wersji PrecomputedText
lub TextView.setText(char[])
powinny jednak w pierwszej kolejności przejść na tę wersję.
Naprawiono te błędy:
Emoji2
doda emotikony doPrecomputedText
, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)- Przeniesienie poprawki błędu powodującego awarię edytora z Androida P do wersji
EditText
skonfigurowanej do korzystania z emoji2. (Ifd709, b/216891011) - Rozwiązanie problemu z awarią, która występowała, gdy biblioteka emoji2 wczytywała czcionkę i użyto wartości
TextView.setText(char[])
. (Id511e, b/206859724)
Wersja 1.2.0-rc01
27 lipca 2022 roku
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-rc01
Wersja 1.2.0-rc01 zawiera te zmiany.
- Brak zmian od ostatniej wersji beta.
Wersja 1.2.0-beta01
13 lipca 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-beta01
Wersja 1.2.0-beta01 zawiera te zmiany.
Nowe funkcje
- Brak zmian w porównaniu z ostatnią wersją (ta wersja jest wydana w celu obsługi wersji AppCompat).
Wersja 1.2.0-alpha04
20 kwietnia 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-alpha04
Wersja 1.2.0-alpha04 zawiera te zmiany.
Nowe funkcje
- W tej wersji nie wprowadzono żadnych zmian.
Wersja 1.2.0-alpha03
6 kwietnia 2022 roku
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-alpha03
Wersja 1.2.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Brak zmian w porównaniu z ostatnią wersją (ta wersja jest przeznaczona do obsługi wersji appcompat).
Wersja 1.2.0-alpha02
23 marca 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-alpha02
Wersja 1.2.0-alpha02 zawiera te zmiany.
Poprawki błędów
- Emoji2 doda emotikony do
PrecomputedText
, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958) - Przeniesienie poprawki błędu edytora z Androida P do elementu EditText skonfigurowanego do korzystania z emoji2. (Ifd709, b/216891011)
- Rozwiązanie problemu z awarią, która występowała, gdy emoji2 wczytywał czcionkę i użyto znaku
TextView.setText(char[])
. (Id511e, b/206859724)
Wersja 1.2.0-alpha01
23 lutego 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-alpha01
Wersja 1.2.0-alpha01 zawiera te zmiany.
Brak zmian od wersji 1.1.0.
1,1
Wersja 1.1.0
23 lutego 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.1.0
Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- emoji2-bundled zawiera czcionkę emoji 14
- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje o klawiaturach, aby określić, jak emoji będzie wyświetlane w przypadku czcionki zgodnej z emoji, która jest ukryta za czcionką systemową. - Poprawka błędu
NumberKeyListener
, która sprawia, że wprowadzanie cyfr prawidłowo filtruje znaki.
Wersja 1.1.0-rc01
9 lutego 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.1.0-rc01
Wersja 1.1.0-rc01 zawiera te zmiany.
Nowe funkcje
Brak zmian w stosunku do wersji beta.
Nowe funkcje w porównaniu z emoji2 w wersji 1.0.0:
emoji2-bundled
zawiera czcionkę Emoji 14- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje o klawiaturach, aby określić, jak emoji będzie wyświetlane w przypadku czcionki zgodnej z emoji, która jest ukryta za czcionką systemową. - Poprawka błędu
NumberKeyListener
, która sprawia, że wprowadzanie cyfr prawidłowo filtruje znaki
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.1.0-beta01
Wersja 1.1.0-beta01 zawiera te zmiany.
Poprawki błędów
- Wersja beta01 biblioteki androidx-emoji2. Brak zmian w porównaniu z wersją alpha01 (Ic61d9)
Wersja 1.1.0-alpha01
15 grudnia 2021 roku
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.1.0-alpha01
Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
emoji2-bundled
zawiera czcionkę Emoji 14- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje o klawiaturach, aby określić, jak emoji będzie wyświetlane w przypadku czcionki zgodnej z emoji, która jest ukryta za czcionką systemową. - Poprawka błędu
NumberKeyListener
, która sprawia, że wprowadzanie cyfr prawidłowo filtruje znaki
Zmiany w interfejsie API
- Dodanie nowego interfejsu API
getEmojiMatch
, aby klawiatury mogły dokładniej wyszukiwać zachowanie dopasowania emotikonów w bibliotece emojicompat. - Wycofanie funkcji
hasEmojiGlyph
, ponieważ jej wartość logiczna jest nieprawidłowa w przypadku testowania czcionki starszej niż czcionka emoji na platformie. Zastąp elementemgetEmojiMatch
. (Ie693d)
Poprawki błędów
- Emoji2 nie będzie opakowywać instancji
NumberKeyListener
, co pozwoli na skonfigurowanie ustawień regionalnych przezTextView
. - Biblioteka Appcompat nie będzie opakowywać instancji
NumberKeyListener
przekazywanych dosetKeyListener
, co umożliwi biblioteceTextView
prawidłowe skonfigurowanie ustawień regionalnych wNumberKeyListeners
. (Ibf113, b/207119921)
1,0
Wersja 1.0.1
15 grudnia 2021 roku
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.1
Wersja 1.0.1 zawiera te zmiany.
Poprawki błędów
Emoji2
nie będzie obejmować instancjiNumberKeyListener
, co umożliwi skonfigurowanie ustawień regionalnych przezTextView
.- Biblioteka Appcompat nie będzie opakowywać instancji
NumberKeyListener
przekazywanych dosetKeyListener
, co umożliwi biblioteceTextView
prawidłowe skonfigurowanie ustawień regionalnych wNumberKeyListeners
. (Ibf113, b/207119921)
Wersja 1.0.0
17 listopada 2021 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0
Wersja 1.0.0 zawiera te zmiany.
Główne funkcje wersji 1.0.0
Biblioteka androidx.emoji2 zastępuje bibliotekę androidx.emoji i ma dodatkowe możliwości:
- Zmniejszenie rozmiaru pliku APK w porównaniu z androidx.emoji
- Automatyczna konfiguracja
- Dodano jako zależność do biblioteki appcompat w wersji 1.4
Więcej informacji o androidx.emoji2 znajdziesz w artykule Obsługa nowoczesnych emotikonów oraz w naszej prezentacji z Android Dev Summit Wyświetlanie wszystkich emotikonów w aplikacji na Androida.
Wersja 1.0.0-rc01
27 października 2021 roku
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0-rc01
Wersja 1.0.0-rc01 zawiera te zmiany.
- Brak zmian od wersji beta02.
Emoji2 w wersji 1.0.0-beta01
15 września 2021 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0-beta01
Wersja 1.0.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
Dodano
setLoadingExecutor
doFontRequestEmojiCompatConfig
, co zastępuje poprzedni interfejs APIsetHandler
. Ten interfejs API umożliwia aplikacjom konfigurowanieFontRequestEmojiCompatConfig
do korzystania z dowolnego wykonawcy w tle.Ta zmiana jest zmianą powodującą niezgodność z
androidx.emoji:emoji
, więcsetHandler
jest zachowywany jako wycofany interfejs API, który nie wykonuje żadnych działań, aby ułatwić migrację. (I6cd48)Biblioteka EmojiCompat prawidłowo ustawia wartość
EditorInfo.extras
na Androidzie 11- Niestandardowe widżety, które używają IME i nie są podklasą EditText, mogą wywoływać
EmojiCompat.updateEditorInfo
, aby poinformować IME, że obsługują przetwarzanie za pomocą biblioteki EmojiCompat. (I1ea9b)
- Niestandardowe widżety, które używają IME i nie są podklasą EditText, mogą wywoływać
Poprawki błędów
- Poprawiono
DefaultEmojiCompatConfig
, aby prawidłowo wyszukiwać dostawcę czcionki emoji na interfejsach API 19 i 28. Rozwiązuje to błąd wprowadzony w bibliotece emoji2 w wersji 1.0.0-alpha01. (Ib33d8, b/197906329)
Wersja 1.0.0-alpha03
30 czerwca 2021 r.
Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0-alpha03
Wersja 1.0.0-alpha03 zawiera te zmiany.
Nowe funkcje
Ta wersja zawiera poprawki błędów i zapewnia większą stabilność.
- Klasa EmojiEditTextHelper umożliwia teraz przekazywanie wartości
null
jako KeyListener. Umożliwia to zastosowanie do implementacji EditText obsługujących emoji zachowania platformy, które zezwala na wartości null. - W przypadku używania klasy EmojiCompatInitializer początkowe opóźnienie uruchomienia jest mniejsze, ponieważ wyzwalanie następuje po wznowieniu pierwszej aktywności. Dzięki temu aplikacja może uruchamiać się bez zakłóceń i nie trzeba wczytywać czcionki w przypadku uruchomień, które nigdy nie wyświetlają interfejsu. Po krótkim opóźnieniu biblioteka EmojiCompat utworzy wątek do wczytania czcionki emoji.
- Aby wdrożyć opóźnienie, dodano nową zależność od
androidx.lifecycle:lifecycle-process
zandroidx.emoji2:emoji2
. W przypadku aplikacji, które już zawierają cykl życia (np. aplikacji z biblioteką appcompat), będzie to miało znikomy wpływ na rozmiar pliku APK.
Zmiany w interfejsie API
- Zezwalaj na wartość null w przypadku KeyListener w klasie AppCompatEditText. Cofa to adnotację o wartości niezerowej, która została dodana do AppCompatEditText w wersji 1.4.0-alpha01, i przywraca poprzednie działanie w przypadku przekazania wartości null. (I21482, b/189559345)
Poprawki błędów
- Zmień EmojiCompatInitializer, aby opóźnić ładowanie czcionki do 500 ms po pierwszym
Activity.onResume
. Dzięki temu aktywność może wykonywać operacjeApplication.onCreate
iActivity.onCreate
bez konfliktów, a jednocześnie zapewniać, że czcionka emoji zostanie wczytana wkrótce po uruchomieniu aplikacji. (I4bff7)
Wersja 1.0.0-alpha02
2 czerwca 2021 r.
androidx.emoji2:emoji2:1.0.0-alpha02
, androidx.emoji2:emoji2-views:1.0.0-alpha02
i androidx.emoji2:emoji2-views-helper:1.0.0-alpha02
są zwalniane. Wersja 1.0.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono nazwę pakietu w
emoji2-views-helper
naandroidx.emoji2.viewsintegration
. Jest to zmiana powodująca niezgodność wsteczną w przypadku biblioteki AppCompat1.4.0-alpha01
. Aplikacje muszą zaktualizować zależność AppCompat, aby używać nowej wersji emoji2. (Ie8397)
Wersja 1.0.0-alpha01
18 maja 2021 r.
androidx.emoji2:emoji2:1.0.0-alpha01
, androidx.emoji2:emoji2-views:1.0.0-alpha01
i androidx.emoji2:emoji2-views-helper:1.0.0-alpha01
są zwalniane. Wersja 1.0.0-alpha01 zawiera te zmiany.
Funkcje w tej pierwszej wersji
Zalecamy zintegrowanie biblioteki emojicompat ze wszystkimi aplikacjami, aby obsługiwać nowoczesne emotikony od API19. Wszystkie treści generowane przez użytkowników w Twojej aplikacji zawierają emoji 🎉.
Biblioteka EmojiCompat została przeniesiona z artefaktów androidx.emoji
do nowych artefaktów androidx.emoji2
, które są obecnie w wersji alfa01. Nowe artefakty zastąpią poprzednią wersję.
emoji2
jest dodawany jako zależność do AppCompat od AppCompat 1.4.0-alpha01
i jest domyślnie włączony w przypadku widoków AppCompat.
Artefakt emoji2
wprowadza nową automatyczną konfigurację z użyciem biblioteki androidx.startup
. Nie musisz już pisać żadnego 👨🏽💻 kodu, aby wyświetlić emoji 🐻❄️.
Zmiany w emoji2 w porównaniu z emoji
- Dodano nową automatyczną konfigurację
EmojiCompatInitializer
za pomocąandroidx.startup
. - Dodano nową konfigurację domyślną, która używa lokalizacji usługi do znajdowania dostawcy czcionek do pobrania w sekcji
DefaultEmojiCompatConfiguration
. - Zajęcia przeniesione z pakietu
androidx.emoji
doandroidx.emoji2
. - Podziel widok
EmojiTextView
i powiązane widoki na osobny artefaktemoji2-views
. Tej opcji należy używać tylko wtedy, gdy aplikacja nie korzysta z biblioteki appcompat. - Wyodrębnione funkcje pomocnicze do integrowania biblioteki emojicompat z widokami niestandardowymi w osobnym artefakcie
emoji2-views-helper
. - Dodano adnotacje dotyczące możliwości przyjmowania wartości null.
- Funkcje pomocnicze w
emoji2-views-helper
można teraz używać nawet wtedy, gdyEmojiCompat
nie jest zainicjowany (wcześniej powodowały wyjątek).
Jaką zależność należy dodać?
- Aplikacje korzystające z AppCompat powinny zostać uaktualnione do wersji AppCompat
1.4.0-alpha01
lub nowszej. - Aplikacje bez AppCompat korzystające z
TextView
/EditText
z platformy powinny używaćEmojiTextView
i powiązanych klas zemoji2-views
.
Obsługa w widokach niestandardowych
- Aplikacje korzystające z biblioteki AppCompat powinny rozszerzać klasy
AppCompatTextView
,AppCompatButton
itp. zamiast klasTextView
itp. - Aplikacje bez AppCompat powinny dodać zależność
androidx.emoji2:emoji2-views-helper
i używać pomocników do integracji z niestandardowymi podklasamiTextView
lubEditText
.
Konfigurowanie automatycznej inicjalizacji
Aplikacje mogą wyłączyć automatyczną inicjację, dodając do pliku manifestu ten kod:
<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>
Wyłącza to automatyczną konfigurację, a następnie możesz przekazać niestandardową konfigurację do
EmojiCompat.init
. Domyślną konfigurację systemu można pobraćDefaultEmojiCompatConfig.create(context)
w celu dalszej konfiguracji przed przekazaniem doEmojiCompat.init
.