Эмодзи2
| Последнее обновление | Стабильный релиз | Предварительная версия релиза | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 10 сентября 2025 г. | 1.6.0 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от Emoji2, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Groovy
dependencies { def emoji2_version = "1.6.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.6.0" implementation("androidx.emoji2:emoji2:$emoji2_version") implementation("androidx.emoji2:emoji2-views:$emoji2_version") implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Версия 1.6
Версия 1.6.0
10 сентября 2025 г.
Выпущена версия androidx.emoji2:emoji2-*:1.6.0 . Версия 1.6.0 содержит следующие коммиты .
Важные изменения по сравнению с версией 1.5.0:
- Поддерживает эмодзи 16.0
- Добавьте суффикс «emoji» к описанию содержимого эмодзи.
Исправлены ошибки
- Перенос
minSdkпо умолчанию с API 21 на API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
Версия 1.6.0-rc01
13 августа 2025 г.
Выпущена версия androidx.emoji2:emoji2-*:1.6.0-rc01 . Версия 1.6.0-rc01 содержит следующие коммиты .
Новые функции
- Добавлена поддержка эмодзи 16.0 и суффикс «emoji» в описание контента.
Изменения в API
- Удаление устаревших аннотаций
@RequiresApi(21)( Ic4792 ) - Удаление устаревших аннотаций
@RequiresApi(21)( I9103b )
Версия 1.6.0-beta01
2 июля 2025 г.
Выпущена версия androidx.emoji2:emoji2-*:1.6.0-beta01 . Версия 1.6.0-beta01 содержит следующие коммиты .
Новые функции
- Поддержка обновлений Emoji 16.0
- Добавьте суффикс «emoji» к описанию контента, чтобы обеспечить единообразное поведение в отношении доступности во всех приложениях для выбора эмодзи.
Версия 1.6.0-alpha01
4 июня 2025 г.
Выпущена версия androidx.emoji2:emoji2-*:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит следующие коммиты .
Новые функции
- Обновления данных Emoji 16.0 ( Ifc878 )
- Добавление суффикса «emoji» к описанию контента.
Исправлены ошибки
- В этой библиотеке теперь используются аннотации JSpecify, определяющие наличие нулевого значения , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующие аргументы компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict,-Xtype-enhancement-improvements-strict-mode( Id07e7 , b/326456246 )
Версия 1.5
Версия 1.5.0
4 сентября 2024 г.
Выпущена версия androidx.emoji2:emoji2-*:1.5.0 . Версия 1.5.0 содержит следующие изменения .
Важные изменения по сравнению с версией 1.4.0
- Поддерживается Emoji 15.1 и двунаправленный переключатель эмодзи. Простым щелчком по двунаправленному переключателю пользователи могут переключаться между версиями эмодзи, обращенными влево и вправо.
- Поддерживается выбор эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи пары открывает селектор эмодзи для нескольких человек в нулевом состоянии. Когда пользователь нажимает на левую половину эмодзи, предварительный просмотр эмодзи в правом нижнем углу обновляется соответствующим образом. Когда пользователь выбирает обе половины эмодзи, предварительный просмотр эмодзи в правом нижнем углу отображает весь эмодзи, и пользователь может его ввести.
Версия 1.5.0-rc01
21 августа 2024 г.
Выпущена версия androidx.emoji2:emoji2-*:1.5.0-rc01 . Версия 1.5.0-rc01 содержит следующие коммиты .
Новые функции
- Поддерживается эмодзи 15.1 и двунаправленный переключатель эмодзи. Простым щелчком по двунаправленному переключателю пользователи могут переключаться между версиями эмодзи, обращенными влево и вправо.
- Поддерживается выбор эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи пары открывает селектор эмодзи для нескольких человек в нулевом состоянии. Когда пользователь нажимает на левую половину эмодзи, предварительный просмотр эмодзи в правом нижнем углу обновляется соответствующим образом. Когда пользователь выбирает обе половины эмодзи, предварительный просмотр отображает весь эмодзи, и пользователь может его ввести.
Исправлены ошибки
- Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( If6b4c , b/345472586 )
- В
EmojiPickerViewвыбор вкладок и индикатор обновляются на один клик позже. ( 146b02 , b/288261054 ) - Функция выбора вкладок и индикатор в
EmojiPickerViewне работают. ( 5e1f14 , b/273883688 )
Версия 1.5.0-beta01
10 июля 2024 г.
Выпущена версия androidx.emoji2:emoji2-*:1.5.0-beta01 . Версия 1.5.0-beta01 содержит следующие коммиты .
Новые функции
- Поддержка эмодзи 15.1 и двустороннего выбора эмодзи в пользовательском интерфейсе.
- Поддержка переработанного дизайна выбора нескольких оттенков кожи.
Исправлены ошибки
- В
EmojiPickerViewвыбор вкладок и индикатор обновляются на один клик позже. ( 146b02 , b/288261054 ) - Функция выбора вкладок и индикатор в
EmojiPickerViewне работают. ( 5e1f14 , b/273883688 )
Версия 1.5.0-alpha01
13 декабря 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.5.0-alpha01 . Версия 1.5.0-alpha01 содержит следующие коммиты.
Новые функции
-
emoji2-bundledсодержит обновленный шрифт эмодзи для поддержки Emoji 15.1.
Изменения в API
- Добавьте исполнителей для управления потоком обратного вызова для
InitCallback. ( I32b67 ) - Теперь
BundledEmojiCompatConfigпринимает исполнитель для управления потоками загрузки. ( I00e81 )
Версия 1.4
Версия 1.4.0
9 августа 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0 . Версия 1.4.0 содержит следующие коммиты.
Важные изменения по сравнению с версией 1.3.0
- Представлена библиотека для выбора эмодзи. Подробнее см. в документации для разработчиков .
Версия 1.4.0-rc01
26 июля 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-rc01 . Версия 1.4.0-rc01 содержит следующие коммиты.
Изменения в API
- Представляем список
registerSource( Iae92f ) - Отзыв от API Council: переименован
TransitionManager.seekTo()вcreateSeekController(). Пожалуйста, исправьте предыдущий комментарий о добавленииTransitionManager.seekTo()кTransitionManager.createSeekController(). ( Idbeb1 ) - Добавлен класс
ExerciseRouteResult, который не является суперклассом дляData,NoDataиConsentRequiredStates. Добавлен классExerciseRouteкак отдельный класс, содержащий данные о местоположении маршрута. ( I22eed ) - Введена
PagerLayoutInfo, содержащая информацию, собранную после прохождения измерения в Pager. Также введена функция PageInfo, содержащая информацию об отдельной измеренной странице в Pager. ( Iad003 , b/283098900 )
Исправлены ошибки
- Мы обновили цвета для
Button,IconButtonиTextButtonв соответствии с дизайном Material3. Семантическая роль дляButton,IconButtonиTextButtonтеперь может быть переопределена с помощьюModifier.semantics. ( Ib2495 ) - Исправлена ошибка, из-за которой выбор вкладки и обновление индикатора
EmojiPickerViewпроисходили на один клик позже. ( I4db04 ) -
FileNotFoundExceptionпри отображении средства выбора эмодзи ( I353e4 ) - Перехват исключения
WindowManager.BadTokenExceptionпри использованииEmojiPickerView( I0a144 )
Версия 1.4.0-beta05
7 июня 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta05 . Версия 1.4.0-beta05 содержит следующие коммиты.
Исправлены ошибки
- Исправлена ошибка, появившаяся в версии 1.3, из-за которой свойства
MetricsAffectingSpansтакие какRelativeSizeSpan, применялись дважды: один раз во время компоновки текста и еще раз внутриEmojiSpan.draw. В результате получался некорректный размер отрисовки, видимый, если параметр размера текста изменялся элементом span. ( b/283208650 )
Версия 1.4.0-beta04
24 мая 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta04 . Версия 1.4.0-beta04 содержит следующие коммиты.
В этом релизе исправлена ошибка, существовавшая с версии 1.0, из-за которой представления с обработчиком, отличным от основного, вызывали исключение при попытке обновить элементы <span> с эмодзи после завершения загрузки шрифта. Обходного пути нет, поэтому, если вас затронула эта ошибка, пожалуйста, обновитесь до этой или более поздней версии.
Исправлены ошибки
- Теперь функции обратного вызова инициализации
EmojiCompatбудут использовать обработчик из каждого представления, учитывая представления, находящиеся вне основного потока. ( Iccbcf )
Версия 1.4.0-beta03
10 мая 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta03 . Версия 1.4.0-beta03 содержит следующие коммиты.
Исправлены ошибки
- Исправлена ошибка, приводящая к сбою при использовании вложенного всплывающего окна выбора эмодзи. ( 0acc8e )
- В методе
EmojiCompat getEmojiStart/getEmojiEndследует генерировать исключения на ранних этапах. ( 26177f )
Версия 1.4.0-beta02
19 апреля 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta02 . Версия 1.4.0-beta02 содержит следующие коммиты.
Исправлены ошибки
- Обновление базовых файлов проверки кода ( Iaa212 )
Версия 1.4.0-beta01
5 апреля 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta01 . Версия 1.4.0-beta01 содержит следующие коммиты.
Новые функции
androidx.emoji2:emoji2-emojipicker
Emoji Picker — это решение для пользовательского интерфейса, предлагающее современный внешний вид, актуальные эмодзи и простоту использования. Пользователи могут просматривать и выбирать эмодзи и их варианты, или выбирать из недавно использованных эмодзи. Благодаря этой библиотеке приложения от разных производителей могут обеспечить единый и удобный интерфейс с эмодзи для своих пользователей, избавляя разработчиков от необходимости создавать и поддерживать собственный инструмент выбора эмодзи с нуля.
Актуальные эмодзи
Каждый год появляются новые эмодзи, и мы будем выборочно включать их в Emoji Picker. Для обеспечения обратной совместимости мы проводим внутреннюю проверку корректности отображения эмодзи, чтобы исключить некорректные результаты. Это гарантирует совместимость библиотеки с различными версиями Android и устройствами.
Варианты с липкими свойствами
Длительное нажатие на эмодзи отобразит меню вариантов, например, разных полов или оттенков кожи. Выбранный вами вариант будет сохранен в палитре эмодзи, а в основной панели будет использоваться последний выбранный вариант. Благодаря этой функции пользователи могут отправлять предпочитаемые варианты эмодзи одним касанием.
Последние эмодзи
Компонент RecentEmojiProvider отвечает за предоставление эмодзи из категории «Недавно использованные». Библиотека имеет стандартный поставщик недавних эмодзи, который удовлетворяет наиболее распространенному сценарию использования:
- Все выбранные эмодзи сохраняются на уровне каждого приложения в общих настройках.
- В окне выбора отображается не более 3 строк выбранных эмодзи, без дубликатов, в обратном хронологическом порядке.
Если такого поведения по умолчанию достаточно, то вам не нужно устанавливать метод setRecentEmojiProvider() .
Работайте с EmojiCompat
Если в приложении есть экземпляр EmojiCompat , он будет использоваться в средстве выбора эмодзи для отображения максимально возможного количества эмодзи. Если EmojiCompat отключен, средство выбора эмодзи все равно будет работать корректно.
Как пользоваться библиотекой
Для использования библиотеки разработчику приложений необходимо...
Импортируйте
androidx.emoji2:emojipicker:$versionвbuild.gradle.dependencies { implementation "androidx.emoji2:emojipicker:$version" }Заполните окно выбора эмодзи и при необходимости установите значения
emojiGridRowsиemojiGridColumnsв зависимости от желаемого размера каждой ячейки с эмодзи.- Вы можете оставить их без изменений, по умолчанию установлено 9
emojiGridColumns, количество строк будет рассчитываться на основе высоты родительского представления иemojiGridColumns - В XML-файле можно задать
emojiGridRowsтип float, чтобы указать, что при прокрутке вниз отображаются дополнительные эмодзи.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />- Вы можете оставить их без изменений, по умолчанию установлено 9
в коде
val emojiPickerView = EmojiPickerView(context).apply {
emojiGridColumns = 15
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
Предположим, вы хотите добавить выбранные эмодзи в поле EditText. Для этого используйте
setOnEmojiPickedListener()emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }При желании можно установить
RecentEmojiProvider; пример реализации см. в демонстрационном приложении.При желании можно настроить стили. Создайте собственный стиль, чтобы переопределить общие атрибуты темы, и примените его к
EmojiPickerView. Например, переопределениеcolorControlNormalизменит цвет значка категории.<style name="CustomStyle" > <item name="colorControlNormal">#FFC0CB</item> </style> <androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/CustomStyle" app:emojiGridColumns="9" />
Пример реализации смотрите в демонстрационном приложении.
Полную информацию о структуре API можно найти здесь .
Пример приложения
В этом демонстрационном приложении показаны основные варианты использования, а также следующие дополнительные сценарии:
- Изменение компоновки представления произошло из-за сброса параметров
emojiGridRowsиemojiGridColumns. - В новой версии сервиса эмодзи сортировка теперь осуществляется по частоте появления.
- Настройка стиля.
Изменения в API
Библиотека Emoji Picker была обновлена и теперь содержит следующие новые API:
- Класс
EmojiPickerViewпредоставляет актуальные эмодзи в вертикальном прокручиваемом представлении с кликабельным горизонтальным заголовком. - Возможность задавать количество столбцов и строк в сетке выбора эмодзи с помощью XML-атрибутов
emojiGridColumnsиemojiGridRowsили методовsetEmojiGridColumns()иsetEmojiGridRows(). - Возможность установить обработчик событий для каждого эмодзи с помощью метода
setOnEmojiPickedListener(). Обработчик будет получать уведомления всякий раз, когда пользователь нажимает на любой эмодзи. - Возможность указать поставщика последних эмодзи через метод
setRecentEmojiProvider(). Это необязательная функция. Если поставщик последних эмодзи не задан, будет использоваться поставщик последних эмодзи по умолчанию, предоставляемый библиотекой. Поведение по умолчанию определяется следующим образом:- Все выбранные эмодзи будут сохранены на уровне приложения в общих настройках.
- В окне выбора будет отображаться не более 3 строк выбранных эмодзи, без дубликатов, в обратном хронологическом порядке.
- Класс
EmojiViewItemсодержит отображаемый эмодзи и его варианты. - Интерфейс
RecentEmojiProvider, который можно использовать для предоставления списка недавно использованных эмодзи.recentEmojiProviderотвечает за предоставление эмодзи из категории «Недавно использованные». - Интерфейс
RecentEmojiAsyncProvider, который можно реализовать для предоставления списка недавно использованных эмодзи.RecentEmojiAsyncProviderотвечает за предоставление эмодзи из категории «Недавно использованные». Этот интерфейс эквивалентенRecentEmojiProvider, который позволяет клиентам переопределять методgetRecentEmojiListAsync()для предоставления недавно использованных эмодзи. - Класс
RecentEmojiProviderAdapterявляется адаптером дляRecentEmojiAsyncProviderи реализуетRecentEmojiProvider.
Версия 1.4.0-alpha01
22 марта 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие коммиты.
Исправлены ошибки
- Исправлять тесты, отключать тесты на нестабильность и выполнять очистку.
Версия 1.3
Версия 1.3.0
22 марта 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.3.0 . Версия 1.3.0 содержит следующие коммиты.
Важные изменения по сравнению с версией 1.2.0
- В этом релизе Compose Foundation
1.4.0и более поздних версий позволяет интегрировать emoji2. - Это также позволяет заменять
EmojiSpansпользовательским кодом отрисовки, а также поддерживает исключение эмодзи, определенное в Android.
Версия 1.3.0-rc01
8 марта 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.3.0-rc01 . Версия 1.3.0-rc01 содержит следующие коммиты.
Новые функции
- Эта версия предназначена для поддержки интеграции с emoji2 compose.
Изменения в API
- Замените диапазоны на пользовательский код отрисовки.
- Запрос исключений системы.
Исправлены ошибки
- Также исправлена ошибка, из-за которой фоновые элементы некорректно применялись за
EmojiSopans.
Версия 1.3.0-beta03
23 февраля 2023 г.
Выпущены версии androidx.emoji2:emoji2-bundled:1.3.0-beta03 , androidx.emoji2:emoji2-views:1.3.0-beta03 и androidx.emoji2:emoji2-views-helper:1.3.0-beta03 .
22 февраля 2023 г.
Выпущена версия androidx.emoji2:emoji2:1.3.0-beta03 . Версия 1.3.0-beta03 содержит следующие коммиты.
Новые функции
- Без изменений. Данный релиз предназначен для подготовки к интеграции с Compose.
Версия 1.3.0-beta02
8 февраля 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.3.0-beta02 . Версия 1.3.0-beta02 содержит следующие коммиты.
Новые функции
- В этом релизе реализована стабилизация для поддержки интеграции с Compose.
Версия 1.3.0-beta01
25 января 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие коммиты.
Новые функции
- Запрос исключений системы.
- Замена элементов интерфейса на пользовательский код отрисовки.
- Также исправлена ошибка, из-за которой фоновые элементы некорректно применялись за
EmojiSopans. - В этом релизе добавлены API, необходимые для поддержки
EmojiCompatв Compose. Ожидается, что поддержка EmojiCompat в Compose появится в одном из ближайших релизов.
Версия 1.3.0-alpha01
11 января 2023 г.
Выпущена версия androidx.emoji2:emoji2-*:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.
Новые API для низкоуровневого взаимодействия.
- Запрос исключений системы
- Замена элементов интерфейса на пользовательский код отрисовки.
- Также исправлена ошибка, из-за которой фоновые элементы некорректно применялись за
EmojiSopans. - В этом релизе добавлены API, необходимые для поддержки
EmojiCompatв Compose. Ожидается, что поддержка EmojiCompat в Compose появится в одном из ближайших релизов.
Изменения в API
- Добавлена возможность запрашивать исключения из системы для
TypefaceEmojiRasterizer. ( I5653e ) - Добавлен новый API
EmojiCompat.SpanFactoryдля замены стандартного поведенияEmojiSpanна пользовательский код отрисовки и изменения размера. ( Ib69d9 ) - Добавлена
EmojiCompatв Compose ( I96f37 , b/139326806 )
Исправлены ошибки
- Теперь Emoji2 будет корректно отображать фон из
BackgroundSpan. ( Ide6a8 , b/230525134 ) - Завершение разработки API AppCompat для версии 1.5.0-beta01 ( I2a43d , b/236866227 )
Версия 1.2
Версия 1.2.0
10 августа 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0 . Версия 1.2.0 содержит следующие коммиты.
Важные изменения по сравнению с версией 1.1.0
Это релиз с исправлениями ошибок. С версии 1.1.0 новые функции и API не добавлены.
Однако приложениям, использующим PrecomputedText или TextView.setText(char[]) следует в первую очередь обновиться до этой версии.
Были исправлены следующие ошибки:
-
Emoji2добавит эмодзи вPrecomputedText, отбросив ранее вычисленную структуру текста. ( I47d06 , b/211231958 ) - Исправление ошибки, приводившей к сбою редактора, перенесенное из Android P в
EditText, настроенный на использование emoji2. ( Ifd709 , b/216891011 ) - Исправлена ошибка, приводившая к сбою при загрузке шрифта emoji2 и использовании
TextView.setText(char[]). ( Id511e , b/206859724 )
Версия 1.2.0-rc01
27 июля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие коммиты.
- С момента выхода последней бета-версии изменений не наблюдалось.
Версия 1.2.0-beta01
13 июля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0-beta01 . Версия 1.2.0-beta01 содержит следующие коммиты.
Новые функции
- Без изменений по сравнению с предыдущей версией (этот релиз предназначен для поддержки версии AppCompat).
Версия 1.2.0-alpha04
20 апреля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит следующие коммиты.
Новые функции
- В этом релизе изменений нет.
Версия 1.2.0-alpha03
6 апреля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит следующие коммиты.
Новые функции
- Без изменений по сравнению с предыдущей версией (этот релиз предназначен для поддержки версии appcompat).
Версия 1.2.0-alpha02
23 марта 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит следующие коммиты.
Исправлены ошибки
- Emoji2 добавит эмодзи в
PrecomputedText, отбросив ранее вычисленную структуру текста. ( I47d06 , b/211231958 ) - Исправление ошибки, приводившей к сбою редактора, перенесенное из Android P в EditText, настроенный на использование emoji2. ( Ifd709 , b/216891011 )
- Исправлена ошибка, приводившая к сбою при загрузке шрифта emoji2 и использовании
TextView.setText(char[]). ( Id511e , b/206859724 )
Версия 1.2.0-alpha01
23 февраля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты.
С версии 1.1.0 изменений нет.
1.1
Версия 1.1.0
23 февраля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.1.0 . Версия 1.1.0 содержит следующие коммиты.
Важные изменения с версии 1.0.0
- emoji2-bundled содержит шрифт emoji 14
- Новый API
getEmojiMatchвозвращает точную информацию, позволяющую клавиатурам определять, как будет отображаться эмодзи при использовании шрифта, совместимого с эмодзи (emojicompat), который находится за системным шрифтом. - Исправлена ошибка в
NumberKeyListener, из-за которой ввод цифр корректно фильтрует символы.
Версия 1.1.0-rc01
9 февраля 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты.
Новые функции
Изменений по сравнению с бета-версией нет.
Новые возможности по сравнению с версией emoji2 1.0.0:
-
emoji2-bundledсодержит шрифт emoji 14 - Новый API
getEmojiMatchвозвращает точную информацию, позволяющую клавиатурам определять, как будет отображаться эмодзи при использовании шрифта, совместимого с эмодзи (emojicompat), который находится за системным шрифтом. - Исправлена ошибка в
NumberKeyListener, из-за которой ввод цифр корректно фильтровал символы.
Версия 1.1.0-beta01
26 января 2022 г.
Выпущена версия androidx.emoji2:emoji2-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие коммиты.
Исправлены ошибки
- Выпуск androidx-emoji2 beta01. Без изменений по сравнению с alpha01 ( Ic61d9 ).
Версия 1.1.0-alpha01
15 декабря 2021 г.
Выпущена версия androidx.emoji2:emoji2-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты.
Новые функции
-
emoji2-bundledсодержит шрифт emoji 14 - Новый API
getEmojiMatchвозвращает точную информацию, позволяющую клавиатурам определять, как будет отображаться эмодзи при использовании шрифта, совместимого с эмодзи (emojicompat), который находится за системным шрифтом. - Исправлена ошибка в
NumberKeyListener, из-за которой ввод цифр корректно фильтровал символы.
Изменения в API
- Добавлен новый API
getEmojiMatch, позволяющий клавиатурам более точно определять соответствие эмодзи в emojicompat. -
hasEmojiGlyphследует считать устаревшим, поскольку его логическое возвращаемое значение неточно при проверке на соответствие шрифту, который старше шрифта эмодзи платформы. Замените его наgetEmojiMatch. ( IE693d )
Исправлены ошибки
- Emoji2 не будет оборачивать экземпляры
NumberKeyListener, что позволит настраивать локаль с помощьюTextView. - Appcompat не будет оборачивать экземпляры
NumberKeyListenerпередаваемые вsetKeyListener, что позволитTextViewкорректно настраивать локаль дляNumberKeyListeners. ( Ibf113 , b/207119921 )
1.0
Версия 1.0.1
15 декабря 2021 г.
Выпущена версия androidx.emoji2:emoji2-*:1.0.1 . Версия 1.0.1 содержит следующие коммиты.
Исправлены ошибки
-
Emoji2не будет оборачивать экземплярыNumberKeyListener, что позволит настраивать локаль с помощьюTextView. - Appcompat не будет оборачивать экземпляры
NumberKeyListenerпередаваемые вsetKeyListener, что позволитTextViewкорректно настраивать локаль дляNumberKeyListeners. ( Ibf113 , b/207119921 )
Версия 1.0.0
17 ноября 2021 г.
Выпущена версия androidx.emoji2:emoji2-*:1.0.0 . Версия 1.0.0 содержит следующие коммиты.
Основные особенности версии 1.0.0
androidx.emoji2 заменяет androidx.emoji, добавляя новые возможности:
- Снижение размера APK по сравнению с androidx.emoji
- Автоматическая настройка
- Добавлено в качестве зависимости к appcompat 1.4
Для получения дополнительной информации об androidx.emoji2 см. раздел «Поддержка современных эмодзи» и наш доклад на Android Dev Summit «Отображение ВСЕХ эмодзи в вашем приложении» на Android Dev .
Версия 1.0.0-rc01
27 октября 2021 г.
Выпущена версия androidx.emoji2:emoji2-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты.
- С момента выхода бета-версии 02 изменений не наблюдалось.
Emoji2 Версия 1.0.0-beta01
15 сентября 2021 г.
Выпущена версия androidx.emoji2:emoji2-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты.
Изменения в API
В
FontRequestEmojiCompatConfigдобавленsetLoadingExecutor, заменяющий предыдущий API методаsetHandler. Этот API позволяет приложениям настраиватьFontRequestEmojiCompatConfigдля использования любого фонового исполнителя.Это изменение является критическим по отношению к
androidx.emoji:emoji, поэтомуsetHandlerсохраняется как устаревший API, не выполняющий никаких действий, для облегчения миграции. ( I6cd48 )EmojiCompat корректно устанавливает значение
EditorInfo.extrasна Android 11.- Пользовательские виджеты, использующие IME и не являющиеся подклассами EditText, могут вызывать
EmojiCompat.updateEditorInfo, чтобы сообщить IME о поддержке обработки EmojiCompat. ( I1ea9b )
- Пользовательские виджеты, использующие IME и не являющиеся подклассами EditText, могут вызывать
Исправлены ошибки
- Исправлена ошибка
DefaultEmojiCompatConfig, из-за которой теперь корректно определяется поставщик шрифтов эмодзи в API 19 и 28. Это исправляет ошибку, появившуюся в emoji2 1.0.0-alpha01. ( Ib33d8 , b/197906329 )
Версия 1.0.0-alpha03
30 июня 2021 г.
Выпущена версия androidx.emoji2:emoji2-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты.
Новые функции
Данный релиз содержит исправления ошибок и стабилизацию системы.
- Теперь EmojiEditTextHelper позволяет передавать
nullв качестве KeyListener. Это обеспечивает возможность применения значений null к эмодзи, поддерживающим реализацию EditText. - При использовании EmojiCompatInitializer улучшена задержка при первоначальном запуске, которая срабатывает после возобновления работы первой Activity. Это позволяет запускать приложение без конфликтов и предотвращает загрузку шрифта для приложений, которые никогда не отображают пользовательский интерфейс. После небольшой задержки EmojiCompat создаст поток для загрузки шрифта эмодзи.
- Добавлена новая зависимость от
androidx.lifecycle:lifecycle-processизandroidx.emoji2:emoji2для реализации задержки. Это окажет незначительное влияние на размер APK-файла для приложений, которые уже включают жизненный цикл (например, приложения с поддержкой appcompat).
Изменения в API
- Разрешить использование нулевого KeyListener в AppCompatEditText. Это отменяет добавленную в AppCompatEditText в версии 1.4.0-alpha01 аннотацию, разрешающую использование нулевого значения, и восстанавливает предыдущее поведение при передаче нулевого значения. ( I21482 , b/189559345 )
Исправлены ошибки
- Измените EmojiCompatInitializer, чтобы загрузка шрифта задерживалась на 500 мс после первого
Activity.onResume. Это позволит Activity выполнятьApplication.onCreateиActivity.onCreateбез конкуренции, при этом гарантируя загрузку шрифта эмодзи вскоре после запуска приложения. ( I4bff7 )
Версия 1.0.0-alpha02
2 июня 2021 г.
Выпущены androidx.emoji2:emoji2:1.0.0-alpha02 , androidx.emoji2:emoji2-views:1.0.0-alpha02 и androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты.
Изменения в API
- Переименован пакет в
emoji2-views-helperвandroidx.emoji2.viewsintegration. Это критическое изменение для AppCompat1.4.0-alpha01, и приложениям необходимо убедиться, что зависимость AppCompat обновлена для использования новой версии emoji2. ( Ie8397 )
Версия 1.0.0-alpha01
18 мая 2021 г.
Выпущены androidx.emoji2:emoji2:1.0.0-alpha01 , androidx.emoji2:emoji2-views:1.0.0-alpha01 и androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.
Функции, представленные в этом первом релизе
Рекомендуется интегрировать emojicompat во все приложения для поддержки современных эмодзи, начиная с API 19. Весь пользовательский контент в вашем приложении должен содержать 🎉.
В EmojiCompat произошел переход от артефактов androidx.emoji к новым androidx.emoji2 , которые сейчас находятся в стадии alpha01. Новые артефакты заменяют предыдущую версию.
Начиная с версии AppCompat 1.4.0-alpha01 emoji2 добавляется в качестве зависимости к AppCompat и включен по умолчанию для представлений AppCompat.
Артефакт emoji2 представляет новую автоматическую конфигурацию с использованием библиотеки androidx.startup . Вам больше не нужно писать никакой 👨🏽💻 код для отображения 🐻❄️.
Изменения в emoji2 по сравнению с emoji
- Добавлена новая функция автоматической настройки
EmojiCompatInitializerс использованиемandroidx.startup. - Добавлена новая конфигурация по умолчанию, которая использует местоположение службы для поиска поставщика загружаемых шрифтов в
DefaultEmojiCompatConfiguration. - Классы перенесены из пакета
androidx.emojiвandroidx.emoji2. - Выделите
EmojiTextViewи связанные с ним представления в отдельный артефактemoji2-views. Это следует использовать только в том случае, если ваше приложение не использует appcompat. - Вспомогательные функции для интеграции emojicompat в пользовательские представления выделены в отдельный артефакт
emoji2-views-helper. - Добавлены аннотации, указывающие на возможность присвоения значения null.
- Вспомогательные функции в
emoji2-views-helperтеперь можно использовать даже тогда, когдаEmojiCompatне инициализирован (ранее они вызывали исключение).
Какую зависимость следует добавить?
- Приложениям, поддерживающим AppCompat, следует обновиться до версии AppCompat
1.4.0-alpha01или выше. - Приложениям без AppCompat, использующим
TextView/EditTextиз библиотеки платформы, следует использоватьEmojiTextViewи связанные с ним классы изemoji2-views.
Как реализовать поддержку в пользовательских представлениях
- Приложения, использующие AppCompat, должны наследовать
AppCompatTextView,AppCompatButtonи т. д., а неTextViewи т. д. - Приложениям без AppCompat следует добавить зависимость
androidx.emoji2:emoji2-views-helperи использовать вспомогательные функции для интеграции с пользовательскими подклассамиTextViewилиEditText.
Настройка автоматической инициализации
Приложения могут отключить автоматическую инициализацию, добавив в манифест следующее:
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" tools:node="remove" /> </provider>Это отключает автоматическую настройку, и вы можете передать пользовательскую конфигурацию в
EmojiCompat.init. Конфигурацию по умолчанию для системы можно получить с помощьюDefaultEmojiCompatConfig.create(context)для дальнейшей настройки перед передачей вEmojiCompat.init.
Emoji2 Emojipicker Версия 1.0
Версия 1.0.0-alpha03
8 марта 2023 г.
Выпущена версия androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты.
Исправлены ошибки
- Удалены ненужные ресурсы, размер библиотеки уменьшен примерно на 0,3 млн.
Версия 1.0.0-alpha02
22 февраля 2023 г.
Выпущена версия androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты.
Изменения в API
- Добавлен новый API для Java-клиентов, позволяющий предоставлять актуальные эмодзи. ( I39d10 )
Исправлены ошибки
- Обновить ресурсы эмодзи для поддержки эмодзи 15.0 ( Ib4eb3 )
- При выборе эмодзи из всплывающего окна замените все идентичные эмодзи на выбранный (кроме последних эмодзи в строке). Также озвучьте выбранный эмодзи при нажатии. ( I892c6 )
- Дождитесь загрузки emojicompat, прежде чем отображать
EmojiPickerView. ( I29e03 )
Версия 1.0.0-alpha01
25 января 2023 г.
Выпущена версия androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.
Новые функции
- Представлен инструмент выбора эмодзи, обеспечивающий единообразный пользовательский интерфейс с новейшими эмодзи на устройствах и в приложениях Android OS от разных производителей. Он поддерживает новейшие эмодзи и пользовательский интерфейс выбора эмодзи, включая варианты оттенков кожи и поддержку совместимости эмодзи.
Изменения в API
- Представлен класс
EmojiPickerView, который отображает актуальные эмодзи в вертикальном прокручиваемом представлении с кликабельным горизонтальным заголовком. - Столбцы сетки выбора эмодзи можно задать с помощью XML-атрибута
emojiGridColumnsили функцииsetEmojiGridColumns(). - Строки сетки выбора эмодзи можно задать с помощью XML-атрибута
emojiGridRowsили функцииsetEmojiGridRows(). - Слушатель событий, отвечающий за выбор эмодзи, можно установить с помощью
setOnEmojiPickedListener(), и слушатель будет получать уведомления всякий раз, когда пользователь нажимает на какой-либо эмодзи. - Поставщик последних эмодзи можно указать с помощью функции
setRecentEmojiProvider(). Это необязательная функция. Если поставщик последних эмодзи не задан, библиотека будет использовать поставщик последних эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом: 1) все выбранные эмодзи будут сохранены на уровне приложения в общих настройках. 2) средство выбора будет отображать не более 3 строк выбранных эмодзи, без дубликатов, в обратном хронологическом порядке. - Введен класс
EmojiViewItem, который хранит отображаемый эмодзи и его варианты. - Введен интерфейс
RecentEmojiProvider, который можно использовать для предоставления списка недавно использованных эмодзи.recentEmojiProviderотвечает за предоставление эмодзи из категории «Недавно использованные».