pointerInput og detectTapGestures
Registrer trykk, dobbelttrykk og langt trykk.
pointerInput og detectTapGestures er en gratis leksjon i Jetpack Compose Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Jetpack Compose Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Jetpack Compose Academy inneholder totalt 4 leksjoner.
Porten til berøring
For å håndtere rå berøring i Compose bruker du pointerInput-modifieren. Den gir alle elementer et sted der de kan lese fingerhendelser direkte. 👆
Legg det til i alle Composable-elementer
Legg til pointerInput i en Modifier-kjede. Inne i lambda-uttrykket får du et bevegelsesområde der du kan lytte etter trykk, dra-bevegelser og mer.
Box(Modifier.pointerInput(Unit) {
// gesture detectors go here
})Registrer enkle trykk
Den enkleste hjelpefunksjonen er detectTapGestures. Den samler trykk, dobbelttrykk, langt trykk og berøring i ett ryddig kall.
detectTapGestures(onTap = { /* tapped */ })Ett raskt trykk
onTap-lambdaen kjøres når en finger trykker ned og løftes uten å bevege seg særlig. Den mottar Offset-posisjonen der trykket fant sted.
detectTapGestures(onTap = { offset -> println(offset) })Registrer et dobbelttrykk
Send inn onDoubleTap for å reagere på to raske trykk etter hverandre. Det passer perfekt til en liker- eller zoomsnarvei på et bilde. 💙
detectTapGestures(onDoubleTap = { /* zoom in */ })Hold inne for langt trykk
onLongPress-lambdaen kjøres når fingeren holdes nede lenger enn en terskelverdi. Bruk den til å åpne kontekstmenyer eller valgmodus.
detectTapGestures(onLongPress = { /* show menu */ })Spor selve trykket
Bruk onPress for å vite når en finger berører skjermen. Lambdaen kan suspenderes, slik at du kan vente på at fingeren løftes eller at handlingen avbrytes.
detectTapGestures(onPress = { awaitRelease() })Alle trykk inneholder en posisjon
Hvert trykktilbakekall gir deg en Offset i piksler, målt fra øvre venstre hjørne av Composable-elementet. Les den for å vite nøyaktig hvor brukeren berørte skjermen.
Det viktige argumentet
Det første argumentet til pointerInput er en nøkkel. Når den endres, starter bevegelsesblokken på nytt, så send inn all tilstand som håndtererne avhenger av.
Modifier.pointerInput(enabled) { /* restarts if enabled flips */ }Bevegelser kjører i korutiner
pointerInput-blokken er et suspend-område. Derfor kan detektorene vente på hendelser bilde for bilde uten å blokkere brukergrensesnittråden.
Kombiner flere tilbakekall
Ett detectTapGestures-kall kan ta imot trykk, dobbelttrykk og langt trykk samtidig. Compose finner ut hvilken handling brukeren mente.
detectTapGestures(onTap = {...}, onLongPress = {...})Rask sjekk
Hvilken hjelpefunksjon samler trykk, dobbelttrykk og langt trykk i ett kall?
Oppsummering: Rå trykk gjort enkelt
Du har blitt kjent med pointerInput og detectTapGestures for trykk, dobbelttrykk og langt trykk. De er grunnlaget for egendefinert berøringshåndtering. 🎉
Lær deg Kotlin med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «pointerInput og detectTapGestures» gratis?
Ja – hele teksten i «pointerInput og detectTapGestures» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Jetpack Compose Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Jetpack Compose Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «pointerInput og detectTapGestures»?
Registrer trykk, dobbelttrykk og langt trykk. Du øver på Jetpack Compose Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Jetpack Compose Academy?
Ingen tidligere erfaring er nødvendig. Jetpack Compose Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «pointerInput og detectTapGestures»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Jetpack Compose Academy-leksjonen?
Ja. Alle Jetpack Compose Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- pointerInput og detectTapGestures
- Dra, sveip og kast
- Transform: Panorering, zoom og rotasjon
- Nestede rulleforbindelser