Kullanıcı etkileşimlerini etkinleştirme

Jetpack Compose, Text içinde ayrıntılı etkileşim sağlar. Metin seçimi artık daha esnek ve birleştirilebilir düzenlerde yapılabilir. Metindeki kullanıcı etkileşimleri, diğer composable düzenlerden farklıdır. Bunun nedeni, Text composable'ın bir bölümüne değiştirici ekleyememenizdir. Bu sayfada, kullanıcı etkileşimlerini sağlayan API'ler vurgulanmaktadır.

Metin seçin

Varsayılan olarak, composable'lar seçilemez. Bu nedenle, kullanıcılar uygulamanızdaki metni seçip kopyalayamaz. Metin seçimini etkinleştirmek için metin öğelerinizi SelectionContainer composable'ı ile sarmalayın:

@Composable
fun SelectableText() {
    SelectionContainer {
        Text("This text is selectable")
    }
}

Kullanıcı tarafından seçilen kısa bir metin parçası.

Seçilebilir bir alanın belirli kısımlarında seçimi devre dışı bırakmak isteyebilirsiniz. Bunu yapmak için seçilemeyen kısmı DisableSelection composable'ı ile sarmalamanız gerekir:

@Composable
fun PartiallySelectableText() {
    SelectionContainer {
        Column {
            Text("This text is selectable")
            Text("This one too")
            Text("This one as well")
            DisableSelection {
                Text("But not this one")
                Text("Neither this one")
            }
            Text("But again, you can select this one")
            Text("And this one too")
        }
    }
}

Daha uzun bir metin pasajı. Kullanıcı, pasajın tamamını seçmeye çalıştı ancak iki satıra DisableSelection uygulandığı için bu satırlar seçilmedi.

LinkAnnotation ile tıklanabilir metin bölümleri oluşturma

Text üzerindeki tıklamaları dinlemek için clickable değiştiricisini ekleyebilirsiniz. Ancak, Text değerinin belirli bir bölümüne ek bilgiler (ör. belirli bir kelimeye eklenmiş ve tarayıcıda açılacak bir URL) eklemek isteyebilirsiniz. Bu gibi durumlarda, metnin tıklanabilir bir bölümünü temsil eden bir açıklama olan LinkAnnotation kullanmanız gerekir.

LinkAnnotation ile, aşağıdaki snippet'te gösterildiği gibi, tıklanır tıklanmaz otomatik olarak açılan bir LinkAnnotation composable'ın bir bölümüne URL ekleyebilirsiniz:Text

Ayrıca, kullanıcının Text composable'ın bir bölümünü tıklamasına yanıt olarak özel bir işlem de yapılandırabilirsiniz. Aşağıdaki snippet'te, kullanıcı "Jetpack Compose"u tıkladığında bir bağlantı gösterilir ve kullanıcı bağlantıyı tıklarsa metrikler günlüğe kaydedilir: