Pressable
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
Pressable to podstawowy komponent opakowujący, który wykrywa różne etapy interakcji naciskania na dowolne zdefiniowane elementy potomne.
<Pressable onPress={onPressFunction}>
<Text>I'm pressable!</Text>
</Pressable>
Jak to działa
Na elemencie opakowanym przez Pressable:
-
onPressInwywoływany jest po aktywacji nacisku. -
onPressOutwywoływany jest po dezaktywacji gestu naciskania.
Po naciśnięciu onPressIn nastąpi jedna z dwóch sytuacji:
-
Użytkownik oderwie palec, wywołując
onPressOuta następnieonPress. -
Jeśli użytkownik przytrzyma palec dłużej niż 500 milisekund przed oderwaniem, wywołany zostanie
onLongPress. (onPressOutnadal wystąpi po oderwaniu palca.)
Palce nie są precyzyjnymi instrumentami - użytkownicy często przypadkowo aktywują niewłaściwy element lub nie trafiają w obszar aktywacji. Aby temu zaradzić, Pressable oferuje opcjonalny HitRect, który określa zasięg rejestracji dotyku poza opakowanym elementem. Naciśnięcia mogą rozpoczynać się w dowolnym miejscu wewnątrz HitRect.
PressRect pozwala na przesuwanie nacisku poza element i jego HitRect przy utrzymaniu aktywacji - jak w przypadku powolnego odsuwania palca od przycisku, który się trzyma.
Obszar dotyku nigdy nie wykracza poza granice widoku nadrzędnego, a indeks Z sąsiednich widoków zawsze ma pierwszeństwo, gdy dotknięcie trafi w dwa nakładające się widoki.
You can set HitRect with hitSlop and set PressRect with pressRetentionOffset.
Pressablewykorzystuje APIPressabilityReact Native. Aby uzyskać więcej informacji na temat przepływu maszyny stanów Pressability i jej działania, zobacz implementację Pressability.
Przykład
Właściwości
android_disableSound Android
Gdy true, wyłącza dźwięk systemowy Androida przy naciskaniu.
| Type | Default |
|---|---|
| boolean | false |
android_ripple Android
Włącza efekt fali na Androidzie i konfiguruje jego właściwości.
| Type |
|---|
| RippleConfig |
children
Elementy potomne lub funkcja przyjmująca wartość logiczną odzwierciedlającą aktualny stan naciśnięcia komponentu.
| Type |
|---|
| React Node |
unstable_pressDelay
Czas (w milisekundach) oczekiwania po naciśnięciu przed wywołaniem onPressIn.
| Type |
|---|
| number |
delayLongPress
Czas (w milisekundach) od onPressIn do wywołania onLongPress.
| Type | Default |
|---|---|
| number | 500 |
disabled
Określa, czy zachowanie naciskania jest wyłączone.
| Type | Default |
|---|---|
| boolean | false |
hitSlop
Ustawia dodatkowy obszar poza elementem, w którym można wykryć naciśnięcie.
| Type |
|---|
| Rect or number |
onHoverIn
Wywoływany przy aktywacji najechania, zapewniając wizualną informację zwrotną.
| Type |
|---|
({ nativeEvent: MouseEvent }) => void |
onHoverOut
Wywoływany przy dezaktywacji najechania, cofający wizualną informację zwrotną.
| Type |
|---|
({ nativeEvent: MouseEvent }) => void |
onLongPress
Wywoływany, jeśli czas po onPressIn przekroczy 500 milisekund. Ten okres można dostosować za pomocą delayLongPress.
| Type |
|---|
({nativeEvent: PressEvent}) => void |
onPress
Wywoływany po onPressOut.
| Type |
|---|
({nativeEvent: PressEvent}) => void |
onPressIn
Wywoływany natychmiast po rozpoczęciu dotyku, przed onPressOut i onPress.
| Type |
|---|
({nativeEvent: PressEvent}) => void |
onPressMove
Wywoływany przy przesuwaniu miejsca nacisku.
| Type |
|---|
({nativeEvent: PressEvent}) => void |
onPressOut
Wywoływany po zwolnieniu dotyku.
| Type |
|---|
({nativeEvent: PressEvent}) => void |
pressRetentionOffset
Dodatkowa odległość poza tym widokiem, w której dotknięcie jest uznawane za naciśnięcie przed wyzwoleniem onPressOut.
| Type | Default |
|---|---|
| Rect or number | {bottom: 30, left: 20, right: 20, top: 20} |
style
Albo style widoku, albo funkcja przyjmująca wartość logiczną określającą czy komponent jest aktualnie wciśnięty i zwracająca style widoku.
| Type |
|---|
View Style or ({ pressed: boolean }) => View Style |
testOnly_pressed
Używane wyłącznie do celów dokumentacyjnych lub testowych (np. testy migawkowe).
| Type | Default |
|---|---|
| boolean | false |
Definicje Typów
RippleConfig
Konfiguracja efektu falowania dla właściwości android_ripple.
| Type |
|---|
| object |
Właściwości:
| Name | Type | Required | Description |
|---|---|---|---|
| color | color | No | Defines the color of the ripple effect. |
| borderless | boolean | No | Defines if ripple effect should not include border. |
| radius | number | No | Defines the radius of the ripple effect. |
| foreground | boolean | No | Set to true to add the ripple effect to the foreground of the view, instead of the background. This is useful if one of your child views has a background of its own, or you're e.g. displaying images, and you don't want the ripple to be covered by them. |