Эмодзи2
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
13 августа 2025 г. | 1.5.0 | 1.6.0-rc01 | - | - |
Объявление зависимостей
Чтобы добавить зависимость от Emoji2, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
классный
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" }
Котлин
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") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Emoji2 Emojipicker Версия 1.0
Версия 1.5.0
4 сентября 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0
. Версия 1.5.0 содержит следующие изменения .
Важные изменения с версии 1.4.0
- Поддержка эмодзи 15.1 и двунаправленного интерфейса селектора эмодзи. Простое нажатие на двунаправленный переключатель позволяет переключаться между левой и правой версиями эмодзи.
- Поддержка выбора эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи с парой открывает селектор эмодзи с несколькими людьми для нулевого состояния. При нажатии на левую половину эмодзи предварительный просмотр эмодзи в правом нижнем углу соответствующим образом обновляется. При выборе обеих половин эмодзи предварительный просмотр эмодзи в правом нижнем углу отображает весь эмодзи, который можно ввести.
Версия 1.0.0-альфа03
8 марта 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
. Версия 1.0.0-alpha03 содержит следующие изменения.
Исправления ошибок
- Удалены ненужные ресурсы и уменьшен размер библиотеки примерно на 0,3М.
Версия 1.0.0-альфа02
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-альфа01
25 января 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01
. Версия 1.0.0-alpha01 содержит следующие изменения.
Новые функции
- Представлен инструмент выбора эмодзи, обеспечивающий единообразный пользовательский интерфейс с новейшими эмодзи на устройствах и в приложениях OEM-производителей Android. Он обеспечивает поддержку новейших эмодзи и пользовательский интерфейс, включая варианты скинов и поддержку совместимых эмодзи.
Изменения API
- Представлен класс
EmojiPickerView
, который предоставляет актуальные эмодзи в вертикально прокручиваемом виде с кликабельным горизонтальным заголовком. - Столбцы сетки выбора эмодзи можно задать с помощью атрибута XML
emojiGridColumns
или функцииsetEmojiGridColumns()
. - Строки сетки выбора эмодзи можно задать с помощью атрибута XML
emojiGridRows
или функцииsetEmojiGridRows()
. - Прослушиватель выбранных эмодзи можно установить с помощью
setOnEmojiPickedListener()
, и прослушиватель будет уведомляться каждый раз, когда пользователь нажимает на любой эмодзи. - Поставщик последних эмодзи может быть предоставлен с помощью
setRecentEmojiProvider()
. Это необязательная функция. Если поставщик последних эмодзи не задан, библиотека будет использовать поставщика последних эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом: 1) все выбранные эмодзи будут сохранены на уровне приложения в общих настройках. 2) в окне выбора будет отображаться не более 3 строк выбранных эмодзи (без дубликатов) в обратном хронологическом порядке. - Введен класс
EmojiViewItem
, который хранит отображаемые эмодзи и их варианты. - Представлен интерфейс
RecentEmojiProvider
, который можно реализовать для предоставления списка недавно использованных эмодзи.recentEmojiProvider
отвечает за предоставление эмодзи в категории «Недавно использованные».
Версия 1.6
Версия 1.6.0-rc01
13 августа 2025 г.
Выпущена androidx.emoji2:emoji2-*:1.6.0-rc01
. Версия 1.6.0-rc01 содержит следующие изменения .
Новые функции
- Реализована поддержка Emoji 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-альфа01
4 июня 2025 г.
Выпущен androidx.emoji2:emoji2-*:1.6.0-alpha01
. Версия 1.6.0-alpha01 содержит следующие изменения .
Новые функции
- Обновления данных Emoji 16.0 ( Ifc878 )
- Добавление суффикса «эмодзи» к описанию контента
Исправления ошибок
- Эта библиотека теперь использует аннотации JSpecify об отсутствии значений (nullness annotations) , которые являются типозависимыми. Разработчикам 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
- Поддержка эмодзи 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 содержит следующие изменения .
Новые функции
- Поддержка emoji 15.1 и двунаправленного интерфейса выбора emoji.
- Поддержка редизайна выбора нескольких оттенков кожи.
Исправления ошибок
- Выбор и индикатор вкладок
EmojiPickerView
обновляются на один клик позже. ( 146b02 , b/288261054 ) - Выбор и индикатор вкладок
EmojiPickerView
неисправны. ( 5e1f14 , b/273883688 )
Версия 1.5.0-альфа01
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
. В результате размер отрисовывался некорректно, что было заметно, если какой-либо из параметров размера текста изменялся в процессе компоновки. ( b/283208650 )
Версия 1.4.0-beta04
24 мая 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta04
. Версия 1.4.0-beta04 содержит следующие изменения.
В этом выпуске исправлена ошибка, существовавшая с версии 1.0, из-за которой представления с неосновным обработчиком вызывали исключение при попытке обновить области эмодзи после завершения загрузки шрифта. Обходного пути нет. Если вы столкнулись с этой ошибкой, пожалуйста, обновитесь до этой версии или более поздней.
Исправления ошибок
- Обратные вызовы инициализации
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 содержит следующие изменения.
Исправления ошибок
- Обновление базовых файлов lint ( Iaa212 )
Версия 1.4.0-beta01
5 апреля 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит следующие изменения.
Новые функции
androidx.emoji2:emoji2-emojipicker
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
- Вы можете установить
emojiGridRows
как плавающее значение, чтобы указать, что при прокрутке вниз в XML есть еще эмодзи.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
- Вы можете оставить их неустановленными, по умолчанию установлено 9
в коде
val emojiPickerView = EmojiPickerView(context).apply {
emojiGridColumns = 15
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
Если вы хотите добавить выбранные эмодзи в EditText, используйте
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
При желании можно установить
RecentEmojiProvider
, см. пример приложения для примера реализации.При необходимости настройте стили. Создайте собственный стиль, чтобы переопределить общие атрибуты темы, и примените его к
EmojiPickerView
. Например, переопределениеcolorControlNormal
изменит цвет значка категории.<style name="CustomStyle" > <item name="colorControlNormal">#FFC0CB</item> </style> <androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/CustomStyle" app:emojiGridColumns="9" />
Смотрите пример приложения для примера реализации.
Полную информацию о API можно найти здесь .
Пример приложения
В этом примере приложения демонстрируются основные варианты использования, а также следующие дополнительные сценарии:
- Представление было переформатировано, поскольку
emojiGridRows
иemojiGridColumns
были сброшены. - Последний поставщик эмодзи переопределяется для сортировки по частоте.
- Настройка стиля.
Изменения API
Библиотека 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-альфа01
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 содержит следующие изменения.
Новые функции
- Этот выпуск представляет собой стабилизацию для поддержки интеграции компоновки.
Версия 1.3.0-beta01
25 января 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит следующие изменения.
Новые функции
- Запрос исключений системы.
- Замена интервалов для пользовательского кода отрисовки.
- И исправлена ошибка, из-за которой фоновые интервалы не применялись правильно за
EmojiSopans
. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompat
в Compose. Ожидается, что поддержка Emoji Compat появится в ближайшем будущем выпуске.
Версия 1.3.0-альфа01
11 января 2023 г.
Выпущена androidx.emoji2:emoji2-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит следующие изменения.
Новые API для низкоуровневых взаимодействий
- Запрос системных исключений
- Замена интервалов для пользовательского кода отрисовки
- И исправлена ошибка, из-за которой фоновые интервалы не применялись правильно за
EmojiSopans
. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompat
в Compose. Ожидается, что поддержка Emoji Compat появится в ближайшем будущем выпуске.
Изменения 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
Это версия с исправлением ошибок. Новые функции и API не добавлялись с версии 1.1.0.
Однако приложения, использующие 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-альфа04
20 апреля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-alpha04
. Версия 1.2.0-alpha04 содержит следующие изменения.
Новые функции
- Никаких изменений в этом выпуске.
Версия 1.2.0-альфа03
6 апреля 2022 г.
Выпущена androidx.emoji2:emoji2-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит следующие изменения.
Новые функции
- Никаких изменений по сравнению с предыдущей версией (этот выпуск предназначен для поддержки выпуска appcompat).
Версия 1.2.0-альфа02
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-альфа01
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-альфа01
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 Отображение ВСЕХ эмодзи в вашем приложении Android Dev .
Версия 1.0.0-rc01
27 октября 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0-rc01
. Версия 1.0.0-rc01 содержит следующие изменения.
- Никаких изменений с версии beta02.
Emoji2 Версия 1.0.0-beta01
15 сентября 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0-beta01
. Версия 1.0.0-beta01 содержит следующие изменения.
Изменения API
Добавлен
setLoadingExecutor
вFontRequestEmojiCompatConfig
, который заменяет предыдущий APIsetHandler
. Этот 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-альфа03
30 июня 2021 г.
Выпущена androidx.emoji2:emoji2-*:1.0.0-alpha03
. Версия 1.0.0-alpha03 содержит следующие изменения.
Новые функции
Этот выпуск содержит исправления ошибок и стабилизацию.
- EmojiEditTextHelper теперь позволяет передавать
null
в качестве KeyListener. Это позволяет платформе применять значения NULL к эмодзи, поддерживающим реализации EditText. - При использовании EmojiCompatInitializer начальная задержка запуска сокращается и срабатывает после возобновления первой активности. Это позволяет приложению запускаться без проблем и предотвращает загрузку шрифта при запуске приложений, не отображающих пользовательский интерфейс. После небольшой задержки EmojiCompat создаст поток для загрузки шрифта эмодзи.
- Для реализации задержки добавлена новая зависимость от
androidx.lifecycle:lifecycle-process
изandroidx.emoji2:emoji2
. Это окажет незначительное влияние на размер APK-файла для приложений, уже поддерживающих жизненный цикл (например, приложений с appcompat).
Изменения API
- Разрешить использование null KeyListener в AppCompatEditText. Это отменяет аннотацию «не null», добавленную в AppCompatEditText в версии 1.4.0-alpha01, и восстанавливает прежнее поведение при передаче null. ( I21482 , b/189559345 )
Исправления ошибок
- Измените EmojiCompatInitializer так, чтобы загрузка шрифта откладывалась до 500 мс после первого
Activity.onResume
. Это позволяет активности выполнятьApplication.onCreate
иActivity.onCreate
без конкуренции, при этом обеспечивая загрузку шрифта эмодзи вскоре после запуска приложения. ( I4bff7 )
Версия 1.0.0-альфа02
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-альфа01
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 содержит эти изменения.
Возможности этого первоначального выпуска
Для поддержки современных эмодзи из API 19 рекомендуется интегрировать emojicompat во все приложения. Весь пользовательский контент в вашем приложении содержит 🎉.
EmojiCompat перешёл с артефактов androidx.emoji
на новый androidx.emoji2
, который сейчас находится в стадии alpha01. Новые артефакты заменяют предыдущую версию.
emoji2
добавлен как зависимость к AppCompat, начиная с AppCompat 1.4.0-alpha01
и включен по умолчанию для представлений 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
.