Standart emoji grubu her yıl yenilenen Emoji kullanımı arttıkça Unicode hızlı bir şekilde değiştirildi.
Uygulamanız internet içeriği görüntülüyorsa veya metin girişi sağlıyorsa en son emoji yazı tiplerinin desteklenmesini öneriyoruz. Aksi takdirde daha sonraki emojiler tofu (☐) adında küçük bir kare kutu veya yanlış oluşturulmuş başka bir metin emin olmanız gerekir.
Android 11 (API düzeyi 30) ve önceki sürümler emoji yazı tipini güncelleyemediğinden bunları 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 yapılması gerekmez (Text
kullanıyorsanız ve
TextField
(Malzeme 2 veya Materyal 3) veya BasicText
ve
BasicTextField
, kullanıma hazır modern emoji desteğinden yararlanın.
Uygulamanızdaki en son emojileri test etmenin en iyi yolu API 30 veya önceki sürümlerdeki gerçek bir cihaz.
Özel bir emoji çözümü kullanıyorsanız veya varsayılan emojiyi devre dışı bırakmanız gerekiyorsa
herhangi bir nedenle saklamanız durumunda,
PlatformTextStyle(emojiSupportMatch)
:
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ğıdakiler
bölümlerinde her bir API'nin ne zaman kullanılacağı açıklanmaktadır.
ComponentActivity
tarihinden itibaren uzatılıyor
Activity
öğeniz Oluştur yerine ComponentActivity
öğesini içeriyorsa
AppCompatActivity
, AppCompat içermeyen emojileri destekle adımlarını uygulayın
bakı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 } } } }
Sonra, XML dosyanızda:
<androidx.emoji2.widget.EmojiTextView android:id="@+id/emoji_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" />
AppCompatActivity
tarihinden itibaren uzatılıyor
Activity
metriğiniz AppCompatActivity
kapsamının dışındaysa şunu kullanabilirsiniz:
Oluşturulabilir işlevleri çağırmak için ComposeView
. Emojiler aşağıdaki platformlarda doğru şekilde oluşturulur:
Metin composable'ları kullandığınız Android sürümleri.
AppCompatActivity
değerinden genişletiyorsanız XML'den TextView
değerini uzatın
sağlandığından emin olun.
Bu, XML dosyasını şişiriyorsanız geçerlidir:
ComposeView
dışında,Activity
içinde. Google Analytics 4'te Aşağıdaki snippet'teAppCompatActivity
veTextView
:
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, bağlantıyı görüntüle aracılığıylaAndroidViewBinding
, aşağıdaki snippet'teki gibi:
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 şişirmek 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 İşbirlikçi API'ler dokümanlarına bakın.
Sorun giderme
Emoji yerine tofu (☐) ifadesini görüyorsanız önce sorunun gerçek olup olmadığını kontrol edin. cihazınıza özel test aracını kullanın. Kontrol edebileceğiniz birkaç ana şey vardır:
- Kısa süre önce güncellenen bir cihaz veya yeni bir emülatör kullanıyor olabilirsiniz. Eğer mümkünse, oturum açıp sık kullandığınız başka bir gerçek test cihazını deneyin Google hesabınız. Bunun için API'nin 30 veya daha az olması gerektiğini unutmayın. doğru sürümlerde çalıştığından emin olun.
- Test telefonu indirilebilir yazı tiplerini desteklemez.
- Google Play Hizmetleri'nin doğru sürümünü kontrol edin.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Diğer noktalar
- Compose'da metin
- Kaydırma