Jetpack Compose Academy · leksjon

pointerInput og detectTapGestures

Registrer trykk, dobbelttrykk og langt trykk.

Leksjon 1 av 413 trinn

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. 🎉

Gratis å komme i gang

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

  1. pointerInput og detectTapGestures
  2. Dra, sveip og kast
  3. Transform: Panorering, zoom og rotasjon
  4. Nestede rulleforbindelser
← Tilbake til Jetpack Compose Academy