pointerInput og detectTapGestures
Registrér tryk, dobbelttryk og langt tryk.
pointerInput og detectTapGestures er en gratis Jetpack Compose Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Jetpack Compose Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.
Vejen til berøring
Hvis du vil håndtere rå berøring i Compose, skal du bruge pointerInput-modifieren. Den giver ethvert element mulighed for at læse fingerbegivenheder direkte. 👆
Føj den til enhver Composable
Føj pointerInput til en kæde af Modifier-objekter. Inde i dens lambda får du et bevægelsesområde, hvor du kan lytte efter tryk, træk og meget mere.
Box(Modifier.pointerInput(Unit) {
// gesture detectors go here
})Registrér enkle tryk
Den mest brugervenlige hjælper er detectTapGestures. Den samler tryk, dobbelttryk, langt tryk og nedtryk i ét enkelt kald.
detectTapGestures(onTap = { /* tapped */ })Ét hurtigt tryk
Lambdaen onTap udløses, når en finger trykker ned og løftes igen uden at flytte sig ret meget. Den modtager den Offset, hvor trykket ramte.
detectTapGestures(onTap = { offset -> println(offset) })Registrér et dobbelttryk
Giv onDoubleTap videre for at reagere på to hurtige tryk efter hinanden. Det er perfekt til en genvej til at synes godt om eller zoome på et billede. 💙
detectTapGestures(onDoubleTap = { /* zoom in */ })Hold fingeren nede
Lambdaen onLongPress udløses, når fingeren holdes nede længere end en bestemt grænse. Brug den til at åbne genvejsmenuer eller en markeringstilstand.
detectTapGestures(onLongPress = { /* show menu */ })Spor selve nedtrykket
Brug onPress for at vide, hvornår en finger rører skærmen. Dens lambda kan suspendere, så du kan vente på, at fingeren løftes, eller at handlingen annulleres.
detectTapGestures(onPress = { awaitRelease() })Hvert tryk indeholder en position
Hvert tryk-tilbagekald giver dig en Offset i pixels målt fra øverste venstre hjørne af den composable. Læs den for at vide præcis, hvor brugeren trykkede.
Det vigtige argument
Det første argument til pointerInput er en nøgle. Når den ændres, genstarter blokken for bevægelser, så giv den enhver tilstand, som dine behandlere afhænger af.
Modifier.pointerInput(enabled) { /* restarts if enabled flips */ }Bevægelser kører i coroutines
Blokken pointerInput er et suspend-område. Derfor kan registreringerne vente på begivenheder fra billede til billede uden at blokere brugergrænsetråden.
Kombinér flere tilbagekald
Ét kald til detectTapGestures kan tage imod tryk, dobbelttryk og langt tryk på samme tid. Compose finder ud af, hvad brugeren mente.
detectTapGestures(onTap = {...}, onLongPress = {...})Hurtigt tjek
Hvilken hjælper samler tryk, dobbelttryk og langt tryk i ét kald?
Opsummering: Rå tryk gjort nemme
Du har mødt pointerInput og detectTapGestures til tryk, dobbelttryk og lange tryk. De er grundlaget for din egen berøringshåndtering. 🎉
Lær Kotlin med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “pointerInput og detectTapGestures” gratis?
Ja — hele teksten til “pointerInput og detectTapGestures” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Jetpack Compose Academy-kurset, skal du opgradere til CoddyKit PRO. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “pointerInput og detectTapGestures”?
Registrér tryk, dobbelttryk og langt tryk. Du øver dig i Jetpack Compose Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Jetpack Compose Academy?
Der kræves ingen tidligere erfaring. Jetpack Compose Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “pointerInput og detectTapGestures”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Jetpack Compose Academy-lektion?
Ja. Alle Jetpack Compose Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- pointerInput og detectTapGestures
- Træk, swipe og fling
- Transform: Panorering, zoom og rotation
- Nested Scroll-forbindelser