Emojileri göster

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'te AppCompatActivity ve TextView:

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
            }
        }
    }
}

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: