Emoji kullanımı tüm uygulama türlerinde hızla arttığından standart emoji grubu Unicode tarafından yılda bir kez yenilenir.
Uygulamanız internet içeriği gösteriyorsa veya metin girişi sağlıyorsa en son emoji yazı tiplerini desteklemenizi önemle tavsiye ederiz. Aksi takdirde, sonraki emojiler tofu (☐) adı verilen küçük bir kare kutu veya yanlış oluşturulmuş diğer emoji sıralamaları olarak gösterilebilir.
Android 11 (API düzeyi 30) ve önceki sürümler emoji yazı tipini güncelleyemez. Bu nedenle, bu sürümlerde emoji gösteren uygulamalar manuel olarak güncellenmelidir.
Aşağıda modern emoji örnekleri verilmiştir.
Örnekler | Sürüm |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (Eylül 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (Eylül 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (Mart 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (Ekim 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (Şubat 2019) |
BOM Mart 2023 (Oluşturma kullanıcı arayüzü 1.4), API 21'e kadar eski Android sürümleriyle geriye dönük uyumluluk da dahil olmak üzere en son emoji sürümüne destek sunar.
Bu destek için uygulamanızda herhangi bir değişiklik yapmanız gerekmez. Text
ve TextField
(Materyal 2 veya Materyal 3) ya da BasicText
ve BasicTextField
kullanıyorsanız modern emoji desteğini kullanıma hazır olarak alırsınız.
Uygulamanızda en yeni emojileri test etmenin en iyi yolu, API 30 veya altını çalıştıran gerçek bir cihaz kullanmaktır.
Özel bir emoji çözümü kullanıyorsanız veya Oluştur'daki varsayılan emoji çözümünü başka bir nedenle devre dışı bırakmanız gerekiyorsa PlatformTextStyle(emojiSupportMatch)
simgesini kullanabilirsiniz:
Text( text = "Hello $EMOJI_TEXT", style = TextStyle( platformStyle = PlatformTextStyle( emojiSupportMatch = EmojiSupportMatch.None )/* ... */ ) )
Birlikte çalışabilirlik
Uygulamanız aynı Activity
içinde hem Görüntüle hem de Oluştur'u kullanıyorsa emojileri doğru şekilde yapılandırmak için uygun API'leri kullandığınızdan emin olun. Aşağıdaki bölümlerde her API'nin ne zaman kullanılacağı açıklanmaktadır.
ComponentActivity
'ten uzatılıyor
Activity
, AppCompatActivity
yerine Oluştur'dan ComponentActivity
uzanıyorsa AppCompat olmadan emoji desteği talimatlarını uygulayın.
AppCompatActivity
kitaplığını genişletmediğiniz için Emoji2 kitaplığını bağımlılıklarınıza ekleyin ve aşağıdaki snippet'te gösterildiği gibi görünümlerinizde TextView
widget'ı yerine EmojiTextView
kullanın:
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val emojiTextView: EmojiTextView = findViewById(R.id.emoji_text_view) emojiTextView.text = getString(R.string.emoji_text_view, EMOJI_TEXT) val composeView: ComposeView = findViewById(R.id.compose_view) composeView.apply { setContent { // compose code } } } }
Ardından, XML dosyanızda:
<androidx.emoji2.widget.EmojiTextView android:id="@+id/emoji_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" />
AppCompatActivity
'ten uzatılıyor
Activity
, AppCompatActivity
'ten uzanıyorsa birleştirilebilir işlevleri çağırmak için ComposeView
kullanabilirsiniz. Metin bileşenlerini kullandığınızda emojiler Android sürümlerinde doğru şekilde oluşturulur.
AppCompatActivity
'ten genişletiyorsanız emojilerin doğru şekilde oluşturulması için XML'den TextView
öğesini şişirin.
Bu, XML'i şişiriyorsanız geçerlidir:
ComposeView
dışındakiActivity
. Aşağıdaki snippet'teAppCompatActivity
veTextView
kullanımı dikkatinizi çekecektir:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val emojiTextView: TextView = findViewById(R.id.emoji_text_view) emojiTextView.text = getString(R.string.emoji_text_view, EMOJI_TEXT) val composeView: ComposeView = findViewById(R.id.compose_view) composeView.apply { setContent { // compose code } } } }
ComposeView
içinde, aşağıdaki snippet'te olduğu gibiAndroidViewBinding
kullanarak görüntü bağlama aracılığıyla:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView( ComposeView(this).apply { setContent { Column { Text(EMOJI_TEXT) AndroidViewBinding(ExampleViewBinding::inflate) { emojiTextView.text = EMOJI_TEXT } } } } ) } }
ComposeView
içinde AndroidView
bulunan bir metni genişletmek için emojileri doğru şekilde oluşturmak üzere AppCompatTextView
kullanın:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView( ComposeView(this).apply { setContent { Column { Text(EMOJI_TEXT) AndroidView( factory = { context -> AppCompatTextView(context) }, update = { it.text = EMOJI_TEXT } ) } } } ) } }
Ayrıntılar için İşlevsel Uyumluluk API'leri dokümanlarına bakın.
Sorun giderme
Emoji yerine tofu (☐) görüyorsanız önce sorunun test cihazınızdan kaynaklanıp kaynaklanmadığını kontrol edin. Kontrol edebileceğiniz birkaç temel nokta vardır:
- Yakın zamanda flaş belleği yüklenen bir cihaz veya yeni bir emülatör kullanıyor olabilirsiniz. Mümkünse sık kullandığınız ve Google Hesabınızda oturum açtığınız başka bir gerçek test cihazını deneyin. Emojilerin doğru sürümlerde çalıştığından emin olmak için API'nin 30 veya daha düşük olması gerektiğini unutmayın.
- Test telefonu indirilebilir yazı tiplerini desteklemiyor.
- Doğru Google Play Hizmetleri sürümünü kontrol edin.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Dikkat edilmesi gereken diğer noktalar
- Oluşturma bölümündeki metin
- Kayan