CodeBlanks Logo Icon CodeBlanks

onLongPress

onLongPress ile uzun dokunma öğrenirsin.

onLongPress olayı

onLongPress kullanıcı bir öğeyi basılı tuttuğunda çağrılır. Hızlı dokunuş onPress'i, uzun tutma ise onLongPress'i tetikler.

Örnek: <TouchableOpacity onPress={'{short}'} onLongPress={'{long}'}>. Hızlı basış short'u, biraz tutma long'u çağırır. Bu, bağlam menüsü ya da silme onayı gibi durumlar için idealdir.

Bekleme süresi delayLongPress prop'u ile ayarlanır. Varsayılan 500 milisaniyedir. Örneğin delayLongPress={'{800}'} daha uzun bir tutma bekler. Bu, yanlış tetiklenmeyi önler.

delayLongPress ayarı

Bir öğeye uzun basmanın ne kadar süreceğini delayLongPress ile ayarlarsın. Varsayılan 500 milisaniyedir; bazen çok kısadır.

Örneğin bir galeride uzun basınca silme menüsü açılıyorsa delayLongPress={'{700}'} daha güvenli hissettirir. Kullanıcı kaydırırken yanlışlıkla silme tetiklenmez.

Değer milisaniye cinsinden verilir. Çok düşük (ör. 100) yanlış tetiklenmelere yol açar; çok yüksek (ör. 2000) kullanıcının sabrını taşır. 500-800 arası genelde iyi bir aralıktır.

Uygulama Kısa ve uzun basma

Bir App bileşeni yaz. count state'i tanımla. <TouchableOpacity> etiketinde hem onPress hem onLongPress olsun. onPress setCount(count + 1), onLongPress setCount(count + 5) yapsın. App fonksiyonunu dışa aktar.

Başlangıç kodu

App.js
import { useState } from 'react';
import { TouchableOpacity, Text } from 'react-native';

// kısa ve uzun basmayı buraya yaz

Örnek çözüm

App.js
function App() {
  const [count, setCount] = useState(0);
  return (
    <TouchableOpacity
      onPress={() => setCount(count + 1)}
      onLongPress={() => setCount(count + 5)}>
      <Text>{count}</Text>
    </TouchableOpacity>
  );
}
export default App;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 onLongPress ekle

Soru
import { TouchableOpacity, Text } from 'react-native';

function App() {
  return (
    <TouchableOpacity
      onPress={() => console.log('Kısa')}
      ____={() => console.log('Uzun')}>
      <Text>Bas</Text>
    </TouchableOpacity>
  );
}
Cevap
import { TouchableOpacity, Text } from 'react-native';

function App() {
  return (
    <TouchableOpacity
      onPress={() => console.log('Kısa')}
      onLongPress={() => console.log('Uzun')}>
      <Text>Bas</Text>
    </TouchableOpacity>
  );
}

Açıklama: onLongPress basılı tutmayı dinler.

2 delayLongPress birimi nedir?

  • Piksel Doğru cevap
  • Saniye
  • Milisaniye
  • Yüzde

Açıklama: değer milisaniye cinsindendir.

3 onLongPress parçalarını eşle

Kavram Anlamı
onLongPress Uzun tutma olayı
delayLongPress Bekleme süresi
500 Varsayılan değer
onPress Hızlı dokunma olayı

Başlangıç bölümündeki tüm dersler