Kullanıcı etkileşimlerini etkinleştirme

Jetpack Compose, Text'te ayrıntılı etkileşim sağlar. Metin seçimi artık daha esnek ve derlenebilir düzenlerde yapılabilir. Text bileşeninin bir bölümüne değiştirici ekleyemezsiniz. Bu nedenle, metindeki kullanıcı etkileşimleri diğer bileşen düzenlerinden farklıdır. Bu sayfada, kullanıcı etkileşimlerini sağlayan API'ler vurgulanmaktadır.

Metin seçin

Derlemeler varsayılan olarak seçilemez. Bu nedenle, kullanıcılar uygulamanızdaki metni seçip kopyalayamaz. Metin seçimini etkinleştirmek için metin öğelerinizi bir SelectionContainer derlemesiyle 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ı bir DisableSelection bileşeni ile sarmanı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ı, metnin 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 öğesindeki tıklamaları dinlemek için clickable değiştiricisini ekleyebilirsiniz. Ancak Text değerinin belirli bir bölümüne ek bilgiler eklemek isteyebilirsiniz (ör. tarayıcıda açılması için belirli bir kelimeye eklenen bir URL). Bu gibi durumlarda, metnin tıklanabilir bir bölümünü temsil eden bir ek açıklama olan LinkAnnotation kullanmanız gerekir.

LinkAnnotation ile, aşağıdaki snippet'te gösterildiği gibi, Text bileşeninin bir bölümüne tıklandığında otomatik olarak açılan bir URL ekleyebilirsiniz:

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ıkladığında metrikler günlüğe kaydedilir: