Emoji kullanımı her uygulama türünde hızla arttığı için standart emoji grubu Unicode tarafından her yıl yenilenir.
Uygulamanız internet içeriği gösteriyorsa veya metin girişi sağlıyorsa en yeni emoji yazı tiplerini desteklemenizi önemle tavsiye ederiz. Aksi takdirde, sonraki emojiler tofu (☐) adlı küçük bir kare kutu veya yanlış oluşturulmuş diğer emoji dizileri olarak gösterilebilir.
Android 11 (API düzeyi 30) ve önceki sürümler, emoji yazı tipini güncelleyemediğinden emojileri bu sürümlerde 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 (Compose kullanıcı arayüzü 1.4), API 21'e kadarki eski Android sürümleriyle geriye dönük uyumluluk dahil olmak üzere en yeni emoji sürümünü destekler.
Bu destek için uygulamanızda değişiklik yapılması gerekmez. Text
ve
TextField
(Materyal 2 veya Materyal 3) ya da BasicText
ve
BasicTextField
kullanıyorsanız, anında modern emoji desteğinden yararlanırsınız.
Uygulamanızdaki en yeni emojileri test etmenin en iyi yolu, API 30 veya önceki sürümleri çalıştıran gerçek bir cihaz kullanmaktır.
Özel bir emoji çözümü kullanıyorsanız veya başka bir nedenle Oluştur'da varsayılan emoji çözünürlüğünü devre dışı bırakmanız gerekiyorsa PlatformTextStyle(emojiSupportMatch)
aracını kullanabilirsiniz:
Text( text = "Hello $EMOJI_TEXT", style = TextStyle( platformStyle = PlatformTextStyle( emojiSupportMatch = EmojiSupportMatch.None )/* ... */ ) )
Birlikte çalışabilirlik
Uygulamanız hem Görünümler'i hem de Oluştur'u aynı Activity
içinde 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 bir API'nin ne zaman kullanılacağı açıklanmaktadır.
ComponentActivity
değerinden uzatılıyor
Activity
öğeniz AppCompatActivity
yerine Oluştur'dan ComponentActivity
alabiliyorsa AppCompat olmadan destek emojisi talimatlarını uygulayın.
AppCompatActivity
uygulamasını genişletmediğiniz için bağımlılıklarınıza Emoji2 kitaplığını ekleyin ve görünümlerinizde aşağıdaki snippet'te gösterildiği gibi 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
değerinden uzatılıyor
Activity
öğeniz AppCompatActivity
tarihinden itibaren uzanıyorsa composable işlevleri çağırmak için ComposeView
kullanabilirsiniz. Text composable'ları kullandığınızda emojiler Android sürümlerinde doğru şekilde oluşturulur.
AppCompatActivity
değerinden genişliyorsanız emojilerin doğru şekilde oluşturulması için XML'den TextView
değerini artırın.
Bu, XML'i şişiriyorsanız geçerlidir:
ComposeView
dışında,Activity
içinde. Aşağıdaki snippet'teAppCompatActivity
veTextView
kullanıldığına dikkat edin:
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 } } } }
- aşağıdaki snippet'te olduğu gibi
AndroidViewBinding
kullanarak görünüm bağlama yoluylaComposeView
içinde:
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
ile bir metni şişirmek için AppCompatTextView
kullanarak emojileri doğru şekilde oluşturun:
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ılı bilgi için Birlikte çalışabilirlik API'leri dokümanlarına bakın.
Sorun giderme
Emoji yerine tofu (☐) simgesini görüyorsanız öncelikle sorunun kullandığınız test cihazından olup olmadığını kontrol edin. Kontrol edebileceğiniz birkaç temel nokta vardır:
- Yakın zamanda yanıp sönen 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çmış olan başka bir gerçek test cihazını deneyin. Emojilerin doğru sürümlerde çalışmasını sağlamak için API'nin 30 veya daha düşük bir değerde olması gerektiğini unutmayın.
- Test telefonu indirilebilir yazı tiplerini desteklemez.
- Doğru Google Play Hizmetleri sürümünü kontrol edin.
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken görüntülenir
- Dikkat edilmesi gereken diğer noktalar
- Oluşturulan metin
- Kaydırma