Kullanıcı etkileşimlerini etkinleştirme

Jetpack Compose, Text uygulamasında 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. Text composable'ın bir bölümüne değiştirici ekleyemezsiniz. 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 metinleri 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 bölümlerinde seçimi devre dışı bırakmak isteyebilirsiniz. Bunun için seçilemeyen kısmı DisableSelection composable bileşeniyle 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 parçası. Kullanıcı tüm pasajı seçmeye çalıştı ancak iki satıra DisableSelection uygulandığı için bu satırlar seçilmedi.

LinkAnnotation ile metnin tıklanabilir bölümlerini oluşturma

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

LinkAnnotation ile, bir Text composable'ın bir bölümüne URL ekleyebilirsiniz. Bu URL, tıklandığında otomatik olarak açılır. Aşağıdaki snippet'te bu durum gösterilmektedir:

Ayrıca, kullanıcının Text bileşeninin 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: