Emoji2
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
4 czerwca 2025 r. | 1.5.0 | - | - | 1.6.0-alpha01 |
Deklarowanie zależności
Aby dodać zależność od Emoji2, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, 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 zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.
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.
Element androidx.emoji2:emoji2-*:1.5.0
został zwolniony. Wersja 1.5.0 zawiera te komity.
Ważne zmiany od wersji 1.4.0
- Obsługa emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączyć 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 pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikonu, w prawym dolnym rogu pojawi się jego podgląd, a następnie będzie można go wstawić.
Wersja 1.0.0-alpha03
8 marca 2023 r.
Element androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.
Poprawki błędów
- Usunięto niepotrzebne zasoby i zmniejszono rozmiar biblioteki o około 0,3 M.
Wersja 1.0.0-alpha02
22 lutego 2023 roku
Element androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02
został zwolniony. Wersja 1.0.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Dodano nowy interfejs API dla klientów Javy, aby umożliwić wyświetlanie najnowszych emotikonów. (I39d10)
Poprawki błędów
- Aktualizacja zasobów emotikonów w celu obsługi emotikonów 15.0 (Ib4eb3)
- Podczas wybierania emotikonu w oknie wyskakującym wszystkie identyczne emotikony zostaną zaktualizowane do nowo wybranego emotikonu (z wyjątkiem wiersza z ostatnio używanymi emotikonami). Po kliknięciu emotikona zostanie też ogłoszony. (I892c6)
- Zanim wyświetlisz
EmojiPickerView
, poczekaj, aż wczyta się emojicompat. (I29e03)
Wersja 1.0.0-alpha01
25 stycznia 2023 r.
Element androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01
został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
- Wprowadziliśmy selektor emotikonów, który zapewnia spójne wrażenia użytkowników dzięki najnowszym emotikonom na urządzeniach OEM i w aplikacjach z Androidem. Oferuje ona najnowsze emotikony i interfejs selektora emotikonów, w tym warianty odcieni skóry i obsługę zgodności emotikonów.
Zmiany w interfejsie API
- Wprowadziliśmy klasę
EmojiPickerView
, która zawiera aktualne emotikony w pionowym widoku z możliwością przewijania oraz klikalny nagłówek poziomy. - Kolumny siatki selektora emotikonów można ustawić za pomocą atrybutu XML
emojiGridColumns
lub funkcjisetEmojiGridColumns()
. - Wiersze siatki selektora emotikonów można ustawić za pomocą atrybutu XML
emojiGridRows
lub funkcjisetEmojiGridRows()
. - Odbiorcę wybranego emotikonu można ustawić za pomocą
setOnEmojiPickedListener()
. Odbiorca zostanie powiadomiony, gdy użytkownik kliknie dowolny emotikon. - Ostatni dostawca emotikonów może być udostępniony za pomocą
setRecentEmojiProvider()
. To funkcja opcjonalna. Jeśli nie ustawisz ostatniego dostawcy emotikonów, biblioteka będzie używać domyślnego ostatniego dostawcy emotikonów. Domyślne działanie jest zdefiniowane w ten sposób: 1) wszystkie wybrane emotikony zostaną zapisane na poziomie aplikacji w ramach wspólnych preferencji. 2) selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej. - Wprowadziliśmy klasę
EmojiViewItem
, która przechowuje wyświetlany emotikon i jego warianty. - Wprowadziliśmy interfejs
RecentEmojiProvider
, który można zaimplementować, aby wyświetlić listę ostatnich emotikonów.recentEmojiProvider
odpowiada za emotikony w kategorii „Ostatnio używane”.
Wersja 1.6
Wersja 1.6.0-alpha01
4 czerwca 2025 r.
Element androidx.emoji2:emoji2-*:1.6.0-alpha01
został zwolniony. Wersja 1.6.0-alpha01 zawiera te komity.
Nowe funkcje
- Aktualizacje danych emotikonów 16.0 (Ifc878)
- Dodanie przyrostka „emoji” do opisu treści
Poprawki błędów
- Biblioteka ta korzysta teraz z adnotacji JSpecify dotyczących nullowania, które są używane w zależności od typu. Deweloperzy Kotlina 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.
Element androidx.emoji2:emoji2-*:1.5.0
został zwolniony. Wersja 1.5.0 zawiera te komity.
Ważne zmiany od wersji 1.4.0
- Obsługa emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączyć 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 pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikonu, w prawym dolnym rogu pojawi się jego podgląd, a następnie będzie można go wstawić.
Wersja 1.5.0-rc01
21 sierpnia 2024 r.
Element androidx.emoji2:emoji2-*:1.5.0-rc01
został zwolniony. Wersja 1.5.0-rc01 zawiera te komisy.
Nowe funkcje
- Obsługa emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączać się między wersjami emotikonów zwróconymi w lewo i w prawo.
- Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikonu, podgląd będzie zawierał cały emotikon, który można wstawić.
Poprawki błędów
- Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API, gdy korzystasz z R8 z AGP 7.3 lub nowszej wersji (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji, gdy korzystasz z AGP 8.1 lub nowszej wersji (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)
- Wybór karty i wskaźnik
EmojiPickerView
aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054) - Wybór karty
EmojiPickerView
i wskaźnik są uszkodzone. (5e1f14, b/273883688)
Wersja 1.5.0-beta01
10 lipca 2024 r.
Element androidx.emoji2:emoji2-*:1.5.0-beta01
został zwolniony. Wersja 1.5.0-beta01 zawiera te komity.
Nowe funkcje
- Obsługa emotikonów 15.1 i interfejsu do wyboru emotikonów w obie strony.
- Zmiana projektu, aby umożliwić wybór różnych odcieni skóry.
Poprawki błędów
- Wybór karty i wskaźnik
EmojiPickerView
aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054) - Wybór karty
EmojiPickerView
i wskaźnik są uszkodzone. (5e1f14, b/273883688)
Wersja 1.5.0-alpha01
13 grudnia 2023 r.
Element androidx.emoji2:emoji2-*:1.5.0-alpha01
został zwolniony. Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
emoji2-bundled
zawiera zaktualizowaną czcionkę emotikonów, która obsługuje standard Emoji 15.1.
Zmiany w interfejsie API
- Dodaj wykonawców, aby kontrolować wątek wywołania zwrotnego w przypadku
InitCallback
. (I32b67) BundledEmojiCompatConfig
teraz używa wykonawcy do sterowania wątkami wczytywania. (I00e81)
Wersja 1.4
Wersja 1.4.0
9 sierpnia 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0
został zwolniony. Wersja 1.4.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.3.0
- Wprowadziliśmy bibliotekę selektora emotikonów. Więcej informacji znajdziesz w dokumentacji dla deweloperów.
Wersja 1.4.0-rc01
26 lipca 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-rc01
został zwolniony. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Wprowadzenie listy
registerSource
(Iae92f) - Opinia Rady Interfejsów API: nazwa
TransitionManager.seekTo()
została zmieniona nacreateSeekController()
. Proszę zmienić poprzedni komentarz o dodaniuTransitionManager.seekTo()
naTransitionManager.createSeekController()
. (Idbeb1) - Dodano klasę
ExerciseRouteResult
, która nie jest superklasą dla klasData
,NoData
iConsentRequiredStates
. DodanoExerciseRoute
jako samodzielną klasę, która zawiera dane o lokalizacji trasy. (I22eed) - Wprowadziliśmy
PagerLayoutInfo
z informacjami zebranymi po przeprowadzeniu pomiaru w Pagerze. Wprowadziliśmy też PageInfo, czyli informacje o pojedynczej zmierzonej stronie w Pagerze. (Iad003, b/283098900)
Poprawki błędów
- Zaktualizowaliśmy kolory elementów
Button
,IconButton
iTextButton
zgodnie z Material Design 3. Semantyczna rola elementówButton
,IconButton
iTextButton
może teraz zostać zastąpiona za pomocą elementuModifier.semantics
. (Ib2495) - Rozwiązanie problemu polegającego na tym, że przy wyborze karty
EmojiPickerView
i aktualizacji wskaźnika kliknięciem wskaźnik jest aktualizowany o jeden kliknięcie za mało. (I4db04) FileNotFoundException
wyświetlanie selektora emotikonów (I353e4)- Catch the
WindowManager.BadTokenException
when usingEmojiPickerView
(I0a144)
Wersja 1.4.0-beta05
7 czerwca 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-beta05
został zwolniony. Wersja 1.4.0-beta05 zawiera te commity.
Poprawki błędów
- Naprawiliśmy błąd wprowadzony w wersji 1.3, który powodował, że
MetricsAffectingSpans
, np.RelativeSizeSpan
, był stosowany dwukrotnie. raz podczas układania tekstu i jeszcze raz wewnątrz elementuEmojiSpan.draw
. Wynik był nieprawidłowo narysowany, co było widoczne, jeśli którykolwiek z parametrów rozmiaru tekstu został zmieniony przez element span. (b/283208650)
Wersja 1.4.0-beta04
24 maja 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-beta04
został zwolniony. Wersja 1.4.0-beta04 zawiera te commity.
Ta wersja rozwiązuje błąd występujący od wersji 1.0, w którym widoki z obsługą niegłówną wywoływały wyjątek podczas próby zaktualizowania zakresów emotikonów po zakończeniu wczytywania czcionki. Nie ma obejścia tego problemu. Jeśli masz z nim do czynienia, zaktualizuj aplikację do tej wersji lub nowszej.
Poprawki błędów
EmojiCompat
inicjujące wywołania zwrotne będą teraz używać modułu obsługi z każdego widoku, uwzględniając widoki spoza wątku głównego. (Iccbcf)
Wersja 1.4.0-beta03
10 maja 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-beta03
został zwolniony. Wersja 1.4.0-beta03 zawiera te commity.
Poprawki błędów
- Naprawiono błąd powodujący awarię w widoku w wyskakującym oknie selekcjonera emotikonów. (0acc8e)
- Wyjątki wczesnego rzutu w funkcję
EmojiCompat getEmojiStart/getEmojiEnd
. (26177f)
Wersja 1.4.0-beta02
19 kwietnia 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-beta02
został zwolniony. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Aktualizacja plików bazowych lint (Iaa212)
Wersja 1.4.0-beta01
5 kwietnia 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-beta01
został zwolniony. Wersja 1.4.0-beta01 zawiera te commity.
Nowe funkcje
androidx.emoji2:emoji2-emojipicker
Selektor emotikonów to rozwiązanie UI, które zapewnia nowoczesny wygląd i sposób działania, aktualne emotikony oraz łatwość obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty lub wybrać emotikony z ostatnio używanych. Dzięki tej bibliotece aplikacje różnych producentów OEM mogą zapewniać użytkownikom przyjazne i ujednolicone emoji bez konieczności tworzenia i utrzymywania własnego selektora emoji od podstaw.
Aktualne emotikony
Nowe emotikony są publikowane co roku i będziemy je selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, wewnętrznie przeprowadzamy dokładne sprawdzenie możliwości renderowania emotikonów, aby wyeliminować problemy z tofu. Dzięki temu biblioteka będzie kompatybilna z różnymi wersjami i urządzeniami Androida.
wariantów przyklejonych,
Długie naciśnięcie emotikonu spowoduje wyświetlenie menu z wersjami, takimi jak różne płcie czy odcienie skóry. Wybrany wariant zostanie zapisany w selektorze emotikonów, a ostatni wybrany wariant będzie używany w panelu głównym. Dzięki tej funkcji użytkownicy mogą wysyłać wybrane emotikony jednym kliknięciem.
Ostatnie emotikony
RecentEmojiProvider
odpowiada za emotikony w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę emotikonów, który spełnia większość typowych przypadków użycia:
- Wszystkie wybrane emotikony są zapisywane w wspólnych preferencjach na poziomie aplikacji.
- Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej.
Jeśli domyślne działanie jest wystarczające, nie musisz ustawiać metody setRecentEmojiProvider()
.
Praca z 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ć.
Jak korzystać z biblioteki
Aby korzystać z biblioteki, deweloper aplikacji powinien:
Zaimportuj
androidx.emoji2:emojipicker:$version
dobuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Rozwiń widok selektora emotikonów i opcjonalnie ustaw
emojiGridRows
orazemojiGridColumns
na podstawie żądanego rozmiaru każdej komórki emotikonu.- Możesz je pozostawić niewypełnione. Domyślnie jest to 9
emojiGridColumns
. Wiersze będą obliczane na podstawie wysokości widoku nadrzędnego iemojiGridColumns
- Możesz ustawić
emojiGridRows
jako liczbę zmienną, aby wskazać, że w XML jest więcej emotikonów, jeśli przewiniesz w dół.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
- Możesz je pozostawić niewypełnione. Domyślnie jest 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 dołączyć wybrane emotikony do elementu EditText, użyj
setOnEmojiPickedListener()
.emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
Opcjonalnie ustaw
RecentEmojiProvider
. Przykładową implementację znajdziesz w aplikacji przykładowej.Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić typowe atrybuty motywu, i zastosuj go do
EmojiPickerView
. Na przykład zastąpieniecolorControlNormal
spowoduje zmianę koloru 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ładową implementację znajdziesz w przykładowej aplikacji.
Pełną stronę interfejsu API znajdziesz tutaj.
Przykładowa aplikacja
Ta przykładowa aplikacja demonstruje podstawowe przypadki użycia oraz te dodatkowe scenariusze:
- Widok został ponownie rozmieszczony, ponieważ
emojiGridRows
iemojiGridColumns
zostały zresetowane. - Ostatni użyty dostawca emotikonów jest zastąpiony przez sortowanie według częstotliwości.
- dostosowywanie stylu;
Zmiany w interfejsie API
Biblioteka Emoji Picker została zaktualizowana o te nowe interfejsy API:
- Klasa
EmojiPickerView
, która zawiera aktualne emotikony w pionowym widoku z możliwością przewijania oraz klikalny nagłówek poziomy. - Możliwość ustawiania liczby kolumn i wierszy w siatce emoji za pomocą atrybutów XML
emojiGridColumns
iemojiGridRows
lub metodsetEmojiGridColumns()
isetEmojiGridRows()
. - Możliwość ustawienia emotikonu wybranego przez słuchacza za pomocą metody
setOnEmojiPickedListener()
. Słuchacz zostanie powiadomiony, gdy użytkownik kliknie dowolny emotikon. - Umożliwienie podania dostawcy ostatnich emotikonów za pomocą metody
setRecentEmojiProvider()
. To funkcja opcjonalna. Jeśli nie ustawisz dostawcy ostatnich emotikonów, biblioteka będzie używać domyślnego dostawcy ostatnich emotikonów. Działanie domyślne jest zdefiniowane w ten sposób:- Wszystkie wybrane emotikony zostaną zapisane na poziomie aplikacji w ramach wspólnych preferencji.
- Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej.
- Klasa
EmojiViewItem
, która zawiera wyświetlany emotikon i jego warianty. - Interfejs
RecentEmojiProvider
, który można zaimplementować, aby wyświetlić listę ostatnio używanych emotikonów.recentEmojiProvider
odpowiada za emotikony w kategorii „Ostatnio używane”. - Interfejs
RecentEmojiAsyncProvider
, który można zaimplementować, aby wyświetlić listę ostatnio używanych emotikonów.RecentEmojiAsyncProvider
odpowiada za emotikony w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem interfejsuRecentEmojiProvider
, który pozwala klientom zastąpić metodęgetRecentEmojiListAsync()
, aby wyświetlać ostatnio używane emotikony. - Klasa
RecentEmojiProviderAdapter
, która jest adapterem klasyRecentEmojiAsyncProvider
i implementuje interfejsRecentEmojiProvider
.
Wersja 1.4.0-alpha01
22 marca 2023 r.
Element androidx.emoji2:emoji2-*:1.4.0-alpha01
został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.
Poprawki błędów
- naprawiać testy, wyłączać testy niestabilne i czyszczyć.
Wersja 1.3
Wersja 1.3.0
22 marca 2023 r.
Element androidx.emoji2:emoji2-*:1.3.0
został zwolniony. Wersja 1.3.0 zawiera te commity.
Ważne zmiany od wersji 1.2.0
- Ta wersja umożliwia Compose Foundation
1.4.0
i nowsze wersje do integracji emoji2. - Umożliwia też zastępowanie
EmojiSpans
niestandardowym kodem rysowania oraz obsługę wykluczeń emotikonów zdefiniowanych na Androidzie.
Wersja 1.3.0-rc01
8 marca 2023 r.
Element androidx.emoji2:emoji2-*:1.3.0-rc01
został zwolniony. Wersja 1.3.0-rc01 zawiera te commity.
Nowe funkcje
- Ta wersja obsługuje integrację emoji2 z edytorem.
Zmiany w interfejsie API
- Zastąp elementy z kodem niestandardowego rysunku.
- Wysyłanie zapytań o wykluczenia systemowe.
Poprawki błędów
- Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem
EmojiSopans
.
Wersja 1.3.0-beta03
23 lutego 2023 r.
Funkcje 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ą dostępne.
22 lutego 2023 roku
Element androidx.emoji2:emoji2:1.3.0-beta03
został zwolniony. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Brak zmian. Ta wersja przygotowuje integrację z Compose.
Wersja 1.3.0-beta02
8 lutego 2023 r.
Element androidx.emoji2:emoji2-*:1.3.0-beta02
został zwolniony. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Ta wersja stabilizuje działanie funkcji integracji z Compose.
Wersja 1.3.0-beta01
25 stycznia 2023 r.
Element androidx.emoji2:emoji2-*:1.3.0-beta01
został zwolniony. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Wysyłanie zapytań o wykluczenia systemowe.
- Zastępowanie zakresów kodu rysowania niestandardowego.
- Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem
EmojiSopans
. - Ta wersja dodaje interfejsy API potrzebne do obsługi
EmojiCompat
w Compose. W najbliższej aktualizacji udostępnimy obsługę emotikonów w komponowaniu.
Wersja 1.3.0-alpha01
11 stycznia 2023 r.
Element androidx.emoji2:emoji2-*:1.3.0-alpha01
został zwolniony. Wersja 1.3.0-alpha01 zawiera te commity.
Nowe interfejsy API do interakcji na niskim poziomie
- Wyszukiwanie wykluczeń systemowych
- Zastępowanie zakresów w kodzie niestandardowego rysowania
- Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem
EmojiSopans
. - Ta wersja dodaje interfejsy API potrzebne do obsługi
EmojiCompat
w Compose. W najbliższej aktualizacji udostępnimy obsługę emotikonów w komponowaniu.
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 zachowaniaEmojiSpan
niestandardowym kodem rysowania i wymiarowania. (Ib69d9) - Dodano
EmojiCompat
do Compose (I96f37, b/139326806)
Poprawki błędów
- Emoji2 będzie teraz prawidłowo wyświetlać tła z
BackgroundSpan
. (Ide6a8, b/230525134) - Finalizowanie interfejsów AppCompat w wersji 1.5.0-beta01 (I2a43d, b/236866227)
Wersja 1.2
Wersja 1.2.0
10 sierpnia 2022 r.
Element androidx.emoji2:emoji2-*:1.2.0
został zwolniony. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
To jest wersja z poprawkami błędów. 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 emotikon doPrecomputedText
, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)- Naprawiono błąd awarii edytora w wersji z Androida P, który został przeniesiony do
EditText
skonfigurowanego do korzystania z emoji2. (Ifd709, b/216891011) - Rozwiązanie problemu z awarią podczas wczytywania czcionki przez emoji2 i używania
TextView.setText(char[])
. (Id511e, b/206859724)
Wersja 1.2.0-rc01
27 lipca 2022 roku
Element androidx.emoji2:emoji2-*:1.2.0-rc01
został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
- Brak zmian od ostatniej wersji beta.
Wersja 1.2.0-beta01
13 lipca 2022 r.
Element androidx.emoji2:emoji2-*:1.2.0-beta01
został zwolniony. Wersja 1.2.0-beta01 zawiera te commity.
Nowe funkcje
- Brak zmian w porównaniu z poprzednią wersją (ta wersja obsługuje wersję AppCompat).
Wersja 1.2.0-alpha04
20 kwietnia 2022 r.
Element androidx.emoji2:emoji2-*:1.2.0-alpha04
został zwolniony. Wersja 1.2.0-alpha04 zawiera te commity.
Nowe funkcje
- W tej wersji nie ma żadnych zmian.
Wersja 1.2.0-alpha03
6 kwietnia 2022 roku
Element androidx.emoji2:emoji2-*:1.2.0-alpha03
został zwolniony. Wersja 1.2.0-alpha03 zawiera te komisy.
Nowe funkcje
- Brak zmian w tej wersji w porównaniu z poprzednią (ta wersja obsługuje wersję aplikacji zgodnej z Androidem).
Wersja 1.2.0-alpha02
23 marca 2022 r.
Element androidx.emoji2:emoji2-*:1.2.0-alpha02
został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.
Poprawki błędów
- Emoji2 doda emotikony do
PrecomputedText
, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958) - Poprawka dotycząca błędu edytowania z Androida P w przypadku pola tekstowego skonfigurowanego do używania emoji2. (Ifd709, b/216891011)
- Rozwiązanie problemu z awarią podczas wczytywania czcionki przez emoji2 i używania
TextView.setText(char[])
. (Id511e, b/206859724)
Wersja 1.2.0-alpha01
23 lutego 2022 r.
Element androidx.emoji2:emoji2-*:1.2.0-alpha01
został zwolniony. Wersja 1.2.0-alpha01 zawiera te commity.
Brak zmian od wersji 1.1.0.
1,1
Wersja 1.1.0
23 lutego 2022 r.
Element androidx.emoji2:emoji2-*:1.1.0
został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.0.0
- emoji2-bundled zawiera czcionkę emoji 14.
- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową. - Poprawka błędu dotycząca
NumberKeyListener
, która umożliwia prawidłowe filtrowanie znaków podczas wpisywania cyfr.
Wersja 1.1.0-rc01
9 lutego 2022 r.
Element androidx.emoji2:emoji2-*:1.1.0-rc01
został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
Brak zmian od wersji beta.
Nowe funkcje w porównaniu z emoji2 1.0.0:
emoji2-bundled
zawiera czcionkę emotikonów 14- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową. - Poprawka dotycząca
NumberKeyListener
, która umożliwia prawidłowe filtrowanie znaków podczas wpisywania cyfr
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Element androidx.emoji2:emoji2-*:1.1.0-beta01
został zwolniony. Wersja 1.1.0-beta01 zawiera te commity.
Poprawki błędów
- Wersja androidx-emoji2 beta01. Brak zmian w wersji alpha01 (Ic61d9)
Wersja 1.1.0-alpha01
15 grudnia 2021 roku
Element androidx.emoji2:emoji2-*:1.1.0-alpha01
został zwolniony. Wersja 1.1.0-alpha01 zawiera te commity.
Nowe funkcje
emoji2-bundled
zawiera czcionkę emotikonów 14- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową. - Poprawka dotycząca
NumberKeyListener
, która umożliwia prawidłowe filtrowanie znaków podczas wpisywania cyfr
Zmiany w interfejsie API
- Dodaj nowy interfejs API
getEmojiMatch
, aby umożliwić klawiaturom dokładniejsze sprawdzanie zachowania dopasowywania emotikonów w funkcji emojicompat. - Oznacz jako przestarzałą funkcję
hasEmojiGlyph
, ponieważ zwracana przez nią wartość logiczna jest niedokładna podczas testowania czcionki starszej niż czcionka emoji na platformie. ZastąpgetEmojiMatch
. (Ie693d)
Poprawki błędów
- Emoji2 nie otacza wystąpień
NumberKeyListener
, co pozwala skonfigurować ustawienia regionalne za pomocąTextView
. - Appcompat nie owija wystąpień
NumberKeyListener
przekazanych dosetKeyListener
, co pozwalaTextView
prawidłowo skonfigurować lokalizację naNumberKeyListeners
. (Ibf113, b/207119921)
1,0
Wersja 1.0.1
15 grudnia 2021 roku
Element androidx.emoji2:emoji2-*:1.0.1
został zwolniony. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Emoji2
nie spowoduje owijania wystąpień funkcjiNumberKeyListener
, co pozwoli na skonfigurowanie lokalizacji przez funkcjęTextView
.- Appcompat nie owija wystąpień
NumberKeyListener
przekazanych dosetKeyListener
, co pozwalaTextView
prawidłowo skonfigurować lokalizację naNumberKeyListeners
. (Ibf113, b/207119921)
Wersja 1.0.0
17 listopada 2021 r.
Element androidx.emoji2:emoji2-*:1.0.0
został zwolniony. Wersja 1.0.0 zawiera te zatwierdzenia.
Najważniejsze funkcje wersji 1.0.0
androidx.emoji2 zastępuje androidx.emoji, oferując dodatkowe możliwości:
- Zmniejszenie rozmiaru pliku APK w porównaniu z pakietem androidx.emoji
- Konfiguracja automatyczna
- Dodano jako zależność do biblioteki appcompat 1.4
Więcej informacji o androidx.emoji2 znajdziesz w artykule Obsługa współczesnych emotikonów oraz w prezentacji z Android Dev Summit Wyświetlanie WSZYSTKICH emotikonów w aplikacji na Androida.
Wersja 1.0.0-rc01
27 października 2021 roku
Element androidx.emoji2:emoji2-*:1.0.0-rc01
został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
- Brak zmian od wersji beta02.
Emoji2 w wersji 1.0.0-beta01
15 września 2021 r.
Element androidx.emoji2:emoji2-*:1.0.0-beta01
został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.
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ą przerwanie działania interfejsu
androidx.emoji:emoji
, więc interfejssetHandler
jest zachowany jako niedziałający interfejs wycofany, aby ułatwić migrację. (I6cd48)EmojiCompat poprawnie ustawia
EditorInfo.extras
na Androidzie 11- W przypadku widżetów niestandardowych, które używają IME, ale nie dziedziczą z EditText, można wywołać funkcję
EmojiCompat.updateEditorInfo
, aby poinformować IME o obsługiwaniu przetwarzania EmojiCompat. (I1ea9b)
- W przypadku widżetów niestandardowych, które używają IME, ale nie dziedziczą z EditText, można wywołać funkcję
Poprawki błędów
- Poprawiono
DefaultEmojiCompatConfig
, aby poprawnie wyszukiwać dostawcę czcionek emoji w wersjach interfejsu API 19 i 28. Poprawia on błąd wprowadzony w emoji2 1.0.0-alpha01. (Ib33d8, b/197906329)
Wersja 1.0.0-alpha03
30 czerwca 2021 r.
Element androidx.emoji2:emoji2-*:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.
Nowe funkcje
Ta wersja zawiera poprawki błędów i poprawki stabilności.
- EmojiEditTextHelper umożliwia teraz przekazywanie obiektu
null
jako KeyListener. Dzięki temu platforma pozwala na stosowanie wartości null do emotikonów obsługujących implementacje EditText. - Gdy używasz EmojiCompatInitializer, początkowe opóźnienie uruchamiania zostało ulepszone, aby uruchamiać się po wznowieniu pierwszej aktywności. Dzięki temu aplikacja uruchamia się bez opóźnień i nie trzeba wczytywać czcionki w przypadku uruchamiania aplikacji, które nigdy nie wyświetlają interfejsu. Po krótkim opóźnieniu EmojiCompat utworzy wątek do załadowania czcionki emotikonów.
- Aby wdrożyć opóźnienie, dodano nowe uzależnienie
androidx.lifecycle:lifecycle-process
odandroidx.emoji2:emoji2
. W przypadku aplikacji, które już zawierają cykl życia (np. aplikacji z funkcją appcompat), będzie to miało znikomy wpływ na rozmiar pliku APK.
Zmiany w interfejsie API
- Zezwalanie na null KeyListener w AppCompatEditText. To odwraca adnotację non-null, która została dodana do AppCompatEditText w wersji 1.4.0-alpha01 i przywraca poprzednie zachowanie, gdy przekazano wartość null. (I21482, b/189559345)
Poprawki błędów
- Zmień EmojiCompatInitializer, aby opóźnić wczytywanie czcionek do 500 ms po pierwszym
Activity.onResume
. Dzięki temu aktywność może wykonywać czynnościApplication.onCreate
iActivity.onCreate
bez rywalizacji, jednocześnie zapewniając, że czcionka emoji zostanie załadowana wkrótce po uruchomieniu aplikacji. (I4bff7)
Wersja 1.0.0-alpha02
2 czerwca 2021 r.
Funkcje 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ą dostępne. Wersja 1.0.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Zmieniono nazwę pakietu z
emoji2-views-helper
naandroidx.emoji2.viewsintegration
. Jest to zmiana powodująca przerwanie działania biblioteki AppCompat1.4.0-alpha01
. Aplikacje muszą mieć zaktualizowaną zależność AppCompat, aby używać nowej wersji emoji2. (Ie8397)
Wersja 1.0.0-alpha01
18 maja 2021 r.
Funkcje 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ą dostępne. Wersja 1.0.0-alpha01 zawiera te commity.
Funkcje dostępne w tej wersji
Aby zapewnić obsługę współczesnych emotikonów w ramach interfejsu API 19, zalecamy integrację pakietu emojicompat we wszystkich aplikacjach. Wszystkie treści użytkowników w aplikacji zawierają 🎉.
EmojiCompat zostało przeniesione z elementów androidx.emoji
do nowych elementów androidx.emoji2
, które są teraz w wersji alpha01. Nowe elementy zastępują poprzednią wersję.
emoji2
jest dodawane jako zależność do AppCompat od wersji AppCompat 1.4.0-alpha01
i jest domyślnie włączone w przypadku widoków AppCompat.
Element emoji2
wprowadza nową konfigurację automatyczną z użyciem biblioteki androidx.startup
. Nie musisz już pisać kodu 👨🏽💻, aby wyświetlić 🐻❄️.
Zmiany w emoji2 z emoji
- Dodano nową konfigurację automatyczną
EmojiCompatInitializer
, która wykorzystujeandroidx.startup
. - Dodano nową konfigurację domyślną, która korzysta z lokalizacji usługi, aby znaleźć dostawcę czcionek do pobrania w sekcji
DefaultEmojiCompatConfiguration
. - Zajęcia zostały przeniesione z pakietu
androidx.emoji
do pakietuandroidx.emoji2
. - Podziel
EmojiTextView
i powiązane widoki na oddzielny elementemoji2-views
. Należy go używać tylko wtedy, gdy aplikacja nie korzysta z funkcji appcompat. - wyodrębniliśmy pomocnicze funkcje do integracji obsługi emotikonów w widokach niestandardowych w oddzielnym artefakcie
emoji2-views-helper
. - Dodano adnotacje dotyczące możliwości wystąpienia wartości null.
- Pomocników w
emoji2-views-helper
można teraz używać nawet wtedy, gdyEmojiCompat
nie jest zainicjowany (wcześniej wywoływali oni wyjątek).
Jakie zależności należy dodać?
- Aplikacje korzystające z AppCompat powinny zostać zaktualizowane do wersji AppCompat
1.4.0-alpha01
lub nowszej. - Aplikacje bez AppCompat korzystające z funkcji
TextView
lubEditText
z platformy powinny używać funkcjiEmojiTextView
i powiązanych klas z poziomuemoji2-views
.
Jak obsługiwać widoki niestandardowe
- Aplikacje z AppCompat powinny rozszerzać
AppCompatTextView
,AppCompatButton
itd., a nie platformęTextView
itd. - Aplikacje bez AppCompat powinny dodać zależność
androidx.emoji2:emoji2-views-helper
i użyć pomocników do integracji z niestandardowymi podklasamiTextView
lubEditText
.
Konfigurowanie automatycznego inicjowania
Aplikacje mogą wyłączyć automatyczną inicjalizację, dodając do pliku manifestu:
<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>
Spowoduje to wyłączenie konfiguracji automatycznej, dzięki czemu możesz przekazać niestandardową konfigurację do
EmojiCompat.init
. Domyślna konfiguracja systemu może zostać pobrana zDefaultEmojiCompatConfig.create(context)
w celu dalszej konfiguracji, zanim zostanie przekazana doEmojiCompat.init
.