Ativar interações do usuário

O Jetpack Compose permite interatividade detalhada no Text. A seleção de texto agora é mais flexível e pode ser feita em layouts de composição. As interações do usuário nos textos são diferentes de outros layouts do mesmo tipo, já que não é possível adicionar um modificador a uma parte de um elemento Text. Esta página destaca as APIs que permitem interações do usuário.

Selecionar texto

Por padrão, os elementos combináveis não são selecionáveis, ou seja, os usuários não podem selecionar e copiar texto do seu aplicativo. Para ativar a seleção de texto, ajuste a opção seus elementos de texto com um elemento combinável SelectionContainer:

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

Pequeno trecho de texto selecionado pelo usuário.

Você pode desativar a seleção de texto em partes específicas de uma área selecionável. Para fazer isso, é necessário unir a parte que não pode ser selecionada a um elemento combinável DisableSelection:

@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")
        }
    }
}

Trecho de texto mais longo. O usuário tentou selecionar a passagem inteira, mas, como duas linhas tinham a opção "DisableSelection" aplicada, elas não foram selecionadas.

Criar seções de texto clicáveis com LinkAnnotation

Para detectar cliques no Text, adicione o modificador clickable. No entanto, você pode querer anexar informações extras a uma determinada parte de o valor Text, como um URL anexado a uma determinada palavra para abrir em um navegador. Em casos como esse, é necessário usar um LinkAnnotation, que é uma anotação que representa uma parte clicável do texto.

Com o LinkAnnotation, é possível anexar um URL a uma parte de um elemento Text combinável. que abre automaticamente depois do clique, conforme mostrado no snippet a seguir:

Também é possível configurar uma ação personalizada em resposta a um clique do usuário em uma parte do elemento combinável Text. No snippet abaixo, quando o usuário clica em "Jetpack Compose", um link é exibido e as métricas são registradas se o usuário clicar no link: