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 ()...
Also ich baue eine App, als Teil davon habe ich viele Composables in der Benutzeroberfläche.
Ein Beispiel-Composbale ist unten angehängt
@Composable
fun RegisterUserPage(
) {
Box(
modifier =...
Ich arbeite an einer Android -App mit Jetpack Compose und versuche, eine Scroll -Schnittstelle zu implementieren, die der Kanal -UI der YouTube -App ähnelt. :
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...