Ich habe eine kommentierte Zeichenfolge in Jetpack komponierbar erstellt und sie einer komponierbaren Textansicht zugewiesen. Es hat mehrere Hyperlinks.
Der Code ist wie unten: < /p>
@Composable
fun HyperlinkText(
fullText: String,
linkTexts: List,
linkUris: List,
linkTextColor: Color,
textColor: Color
) {
val annotatedString = buildAnnotatedString {
append(fullText)
linkTexts.map {
val startIndex = fullText.indexOf(it)
if (startIndex != -1) {
val endIndex = startIndex + it.length
if (endIndex > fullText.length) return@map
addStyle(
SpanStyle(
color = linkTextColor
),
startIndex,
endIndex
)
val indexOfLinkText = linkTexts.indexOf(it)
if (indexOfLinkText != -1) {
addStringAnnotation(
tag = ANNOTATION_URL,
annotation = linkUris[indexOfLinkText],
start = startIndex,
end = endIndex
)
}
}
}
}
val uriHandler = LocalUriHandler.current
var layoutResult by remember { mutableStateOf(null) }
Text(
text = annotatedString,
style = run { deviceTypography?.resolveStyle() ?: typography.resolveStyle() }.copy(
color = textColor
),
modifier = Modifier
.pointerInput(Unit) {
detectTapGestures { offset ->
layoutResult?.let { textLayoutResult ->
val position = textLayoutResult.getOffsetForPosition(offset)
annotatedString.getStringAnnotations(
tag = ANNOTATION_URL,
start = position,
end = position
).firstOrNull()?.let { stringAnnotation ->
uriHandler.openUri(stringAnnotation.item)
}
}
}
}
.focusable(),
onTextLayout = { layoutResult = it }
)
}
< /code>
Wenn der Fokus mit Hardware -Tastatur mithilfe der Hardware -Tastatur navigiert, wird der Fokus nie auf dem Hyperlink der kommentierten Zeichenfolge beteiligt. Ich verwende Jetpack komponieren 1.7.0. Ich habe versucht, Mix and Match von Fokussen und Fokusproperties im Modifikator zu erreichen, aber nichts funktioniert. Was könnte das Problem sein?
Hardware -Tastaturfokus landet nie auf annotierter String -Hyperlink in Jetpack Compose ⇐ Android
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Android Jetpack Compose: So zeigen Sie gestylerte Text aus String -Ressourcen
by Anonymous » » in Android - 0 Replies
- 8 Views
-
Last post by Anonymous
-