मैं setOnLongClickListener() के माध्यम से एक व्यू के लंबे क्लिक ईवेंट सुन रहा हूं। क्या मैं लंबी क्लिक देरी/अवधि बदल सकता हूं?लंबी क्लिक विलंब बदलें
14
A
उत्तर
13
AFAIK, नहीं। यह के माध्यम से ViewConfiguration
पर ढांचे में हार्ड-वायर्ड है।
आप अपने स्वयं के स्पर्श कार्यक्रमों को संभालने और अपनी "लंबी क्लिक" अवधारणा को परिभाषित करने के लिए आपका स्वागत है। बस यह सुनिश्चित करें कि उपयोगकर्ता अपेक्षाओं से बहुत नाटकीय रूप से अलग नहीं है, और संभवतः उपयोगकर्ता उम्मीद करेगा कि अन्य सभी ऐप्स किस प्रकार उपयोग करते हैं, जो मानक 500ms अवधि है।
3
यह सबसे सरल काम कर समाधान मैं इस प्रतिबंध के लिए मिला था: देर तक दबाए रखने
private int longClickDuration = 3000;
private boolean isLongPress = false;
numEquipeCheat.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
isLongPress = true;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (isLongPress) {
Vibrator vibrator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(100);
// set your code here
// Don't forgot to add <uses-permission android:name="android.permission.VIBRATE" /> to vibrate.
}
}
}, longClickDuration);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
isLongPress = false;
}
return true;
}
});
11
इस सेट अवधि के लिए मेरा तरीका है यह मैं क्या उपयोग है। यह दो उल्लेखनीय मतभेदों के साथ, Cumulo Nimbus के जवाब के समान है।
- डाउन टाइम और वर्तमान समय के लिए पहले से संग्रहीत ईवेंट मानों का उपयोग करें। प्रयास को डुप्लिकेट करने के अलावा, श्रोताओं को एक ही समय में कई अलग-अलग विचारों के लिए उपयोग करने योग्य प्रभाव पड़ता है, बिना प्रत्येक व्यक्तिगत घटना के प्रारंभ समय को ट्रैक किए।
- यह सुनिश्चित करने के लिए कि उपयोगकर्ता टच ईवेंट के दौरान दृश्य से दूर नहीं चले गए हैं,
view.isPressed
देखें। यहonClick
औरonLongClick
के लिए डिफ़ॉल्ट सिस्टम व्यवहार की नकल करता है।
long longPressTimeout = 2000;
@Override
public boolean onTouch(View view, MotionEvent event) {
if (view.isPressed() && event.getAction() == MotionEvent.ACTION_UP) {
long eventDuration = event.getEventTime() - event.getDownTime();
if (eventDuration > longPressTimeout) {
onLongClick(view);
} else {
onClick(view);
}
}
return false;
}
दृश्य सामान्य रूप से क्लिक करने योग्य आप काम करने के लिए view.isPressed()
जांच करने के लिए view.setClickable(true)
को कॉल करना होगा नहीं है।
2
को
//Define these variables at the beginning of your Activity or Fragment:
private long then;
private int longClickDuration = 5000; //for long click to trigger after 5 seconds
...
//This can be a Button, TextView, LinearLayout, etc. if desired
ImageView imageView = (ImageView) findViewById(R.id.desired_longclick_view);
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
then = (long) System.currentTimeMillis();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
if ((System.currentTimeMillis() - then) > longClickDuration) {
/* Implement long click behavior here */
System.out.println("Long Click has happened!");
return false;
} else {
/* Implement short click behavior here or do nothing */
System.out.println("Short Click has happened...");
return false;
}
}
return true;
}
});
संबंधित मुद्दे
- 1. क्लिक पर समय विलंब
- 2. विलंब
- 3. एंड्रॉइड: लंबी क्लिक क्यों सामान्य क्लिक को ट्रिगर करता है?
- 4. कैसे विलंब
- 5. OnKeyUp जावास्क्रिप्ट समय विलंब?
- 6. विलंब: CSS3 में होवर?
- 7. jQuery एनीमेशन विलंब
- 8. प्रतिनिधि। बेगीन इनवोक विलंब
- 9. ट्विटर बूटस्ट्रैप पॉपअप विलंब
- 10. जावा विलंब/प्रतीक्षा
- 11. Jquery विलंब समारोह
- 12. बटन पर पैनल आकार बदलें क्लिक
- 13. विलंब जावास्क्रिप्ट के फ़ंक्शन निष्पादन
- 14. jQuery एनीमेशन विलंब एक कक्षा
- 15. PHP स्क्रिप्ट का निष्पादन विलंब
- 16. MySQL ट्रिगर/प्रक्रिया निष्पादन विलंब
- 17. लंबी स्ट्रिंग
- 18. सूची आइटम पर चेकबॉक्स स्थिति बदलें क्लिक करें?
- 19. jQuery बटन सेट पर jQuery क्लिक/बदलें फ़ंक्शन
- 20. लिंक पर क्लिक करते समय सक्रिय ली बदलें jquery
- 21. एक लंगर के रंग बदलें क्लिक किया जब
- 22. क्लिक पर छवि और alt विशेषता कैसे बदलें?
- 23. प्रतिशत के रूप में लंबी लंबी संख्या को विभाजित करें
- 24. CSS3 संक्रमण के साथ विलंब माउसआउट/होवर
- 25. एंड्रॉइड जीपीएस विलंब डेटाबेस को भेजते समय
- 26. UIScrollView में स्पर्श विलंब को छोटा करें?
- 27. विलंब पृष्ठ जावास्क्रिप्ट के साथ बंद है?
- 28. सी में समय विलंब सी। नींद
- 29. सॉकेट.आईओ: डिस्कनेक्शन पर एक्सएचआर-मतदान विलंब
- 30. एंड्रॉइड लंबी कुंजी प्रेस
आप अपनी लंबी क्लिक अवधारणा को परिभाषित करने के बारे में कैसे जाएंगे? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
धन्यवाद, मुझे लगता है कि मैं अभी के लिए डिफ़ॉल्ट के साथ रहना होगा। – fhucho
@zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz शायद ओवरराइडिंग व्यू द्वारा। कूल उपयोगकर्ता नाम बीटीडब्ल्यू ;-) – fhucho