Ich habe Probleme, eine benutzerdefinierte Komponente sowohl fokussierbar als auch anklickbar zu machen. Mein Ziel ist es, eine benutzerdefinierte Komponente zu erstellen, die beim Klicken automatisch Fokus erhält. Dazu folge ich der offiziellen Google -Dokumentation über FocusRequester. Ich verwende composebom = "2025.05.00" < /code> < /p>
Ich kann jedoch die folgenden Probleme stellen: < /p>
Beispiel 1:
Ich habe verstanden, dass der klickbare Modifikator intern einen fokussierbaren Knoten erstellt. Mein erster Ansatz war: < /p>
@Composable
fun Sample1() {
val focusRequester = remember { FocusRequester() }
val interactionSource = remember { MutableInteractionSource() }
val isFocused = interactionSource.collectIsFocusedAsState().value
val color by remember(isFocused) { mutableStateOf(if (isFocused) Blue else Green) }
Column {
Box(
Modifier
.background(color)
.focusRequester(focusRequester)
.clickable(
interactionSource = interactionSource,
indication = null,
onClick = { focusRequester.requestFocus() }
)
) {
Text("Focusable box")
}
}
}
< /code>
Leider erhält es, wenn ich auf die Komponente klicke, keinen Fokus, obwohl es beim Navigieren mit der Tastatur (Tab -Taste) keinen Fokus erhält. Es wurde jedoch ein neues Problem angezeigt: "Doppelfokus" beim Navigieren mit der Registerkartenschlüssel, was Sinn macht, da sowohl mein Knoten als auch das von Clickable vorhanden sind. < /P>
@Composable
fun Sample2() {
val focusRequester = remember { FocusRequester() }
val interactionSource = remember { MutableInteractionSource() }
val isFocused = interactionSource.collectIsFocusedAsState().value
val color by remember(isFocused) { mutableStateOf(if (isFocused) Blue else Green) }
Column {
Box(
Modifier
.background(color)
.focusRequester(focusRequester)
.focusable(interactionSource = interactionSource)
.clickable(
interactionSource = interactionSource,
indication = null,
onClick = { focusRequester.requestFocus() }
)
) {
Text("Focusable box")
}
}
}
< /code>
Ich bin mir nicht sicher, ob ich dies als Fehler melden sollte oder ob mir etwas in meiner Implementierung fehlt. Kann mir jemand helfen?
Danke im Voraus!
Die benutzerdefinierte Komponente fokus ⇐ Android
-
- Similar Topics
- Replies
- Views
- Last post