Wie kann ich mit der Gamepad -Taste in meinem Jetpack -App -UI -UI -Taste mit der Taste des Jetpacks handhaben? Argument, aber es ist eher ein Hit oder ein Miss. Gibt es eine bessere Möglichkeit, dies zu tun?
Wie kann ich mit der Gamepad -Taste in meinem Jetpack -App -UI -UI -Taste mit der Taste des Jetpacks handhaben? Argument, aber es ist eher ein Hit oder ein Miss. Gibt es eine bessere Möglichkeit, dies zu tun?[code]@Stable enum class GamepadButton { A, B, X, Y, }
data object GamepadDefaults { val SELECT_KEY = GamepadButton.A }
// TODO: Better logging @Stable class GamepadEventHandler { private val handlers = mutableListOf Unit>()
fun registerEventHandler(handler: (GamepadButton) -> Unit): (GamepadButton) -> Unit { handlers.add(handler) return handler }
fun unregisterEventHandler(handler: (GamepadButton) -> Unit) { handlers.remove(handler) }
fun triggerEvent(button: GamepadButton): Boolean { handlers.forEach { it(button) } Log.d("GamepadEventHandler", "Triggering event for button: $button") return true } }
@Composable fun rememberGamepadEventHandler(handler: GamepadEventHandler): GamepadEventHandler = remember { handler }
val LocalGamepadEventHandler = compositionLocalOf { error("No GamepadEventHandler provided") }
@Composable fun Modifier.pressable( onPress: () -> Unit, gamepadButton: GamepadButton? = null, enabled: Boolean = true, canFocus: Boolean = true, indication: Indication? = ripple() ) = composed { val gamepadEventHandler = LocalGamepadEventHandler.current val interactionSource = remember { MutableInteractionSource() } val focusManager = LocalFocusManager.current var focused by remember { mutableStateOf(false) }
val coroutineScope = rememberCoroutineScope()
LaunchedEffect(Unit) { coroutineScope.launch { interactionSource.interactions.collect { if (it is FocusInteraction.Focus && !canFocus) { focusManager.clearFocus() } } } }
DisposableEffect(gamepadButton, enabled) { val handlerId = gamepadEventHandler.registerEventHandler { Log.d("GamepadEventHandler", "Registering event for button: $it $gamepadButton, $enabled") if (it == gamepadButton && enabled) { if (focused) onPress() } }
Ich möchte verbundene Android -Tests schreiben, die GUI -Verhaltensweisen und die ausgelösten Navigationen validieren. Zum Beispiel auf einem Bildschirm wischen, um ein Menü zu öffnen, navigiert ()...
Ich habe ein einfaches horizontales Gradientenbox, das von Farbe rot zu Farbe blau wird. Box:
Box(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.background(
brush =...
Wenn ich mehrmals auf das Back -Symbol klicke, ruft es navcontroller.popbackstack () so oft auf und lässt mich mit einem leeren Bildschirm. Scaffold(
topBar = {
PhotoDetailTopBar(
onBackClick = {...
Erstellen einer App, mit der Controller Joystick in Tastendrücken verwandeln kann, jedoch nicht sicher, ob es Haken oder Pakete gibt, die den Eingang nach der Erkennung blockieren können. Ich habe...
Erstellen einer App, mit der Controller Joystick in Tastendrücken verwandeln kann, jedoch nicht sicher, ob es Haken oder Pakete gibt, die den Eingang nach der Erkennung blockieren können. Ich habe...