पर सेकरबार का अंगूठा, जब उपयोगकर्ता ने इसे क्लिक्स किया है तो किसी ईवेंट को ट्रिगर करने के लिए मैं लुकबार के अंगूठे पर एक क्लिक करने योग्य ईवेंट पंजीकृत करना चाहता हूं। क्या यह संभव है?क्लिक
क्लिक
उत्तर
मैं इसे इस तरह से कार्य करें:
pagesSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { //listener
@Override
public void onStopTrackingTouch(final SeekBar seekBar) {
//add your event here
}
@Override
public void onStartTrackingTouch(final SeekBar seekBar) {
}
@Override
public void onProgressChanged(final SeekBar seekBar, final int progress, final boolean fromUser) {
updateControls(progress, false);
}
});
मैं केवल अंगूठे में क्लिक करने में सक्षम होना चाहता हूं। वह श्रोता खोज बार – biquillo
मैं निम्नलिखित तरीके से इस लक्ष्य को हासिल करने में सक्षम था:
seekBar.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
changedPosition = true;
seekBar.setProgress(seekBar.getProgress());
return false;
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
if(!changedPosition)
{
//do action here
}
}
}
आशा है कि यह मदद करता है
के हर हिस्से में क्लिक करने के लिए ट्रिगर किया गया है, यह पूरे साधक पर स्पर्श घटनाओं को सुनता है बल्कि सिर्फ अंगूठे। – Prateek
प्रेटेक सही है, जब आप तलाशबार के अन्य हिस्सों में भी जाते हैं तो यह आग लग जाएगा। –
@ BjörnKechel जबकि यह सच है कि यह सभी साधक पर घटनाओं को छूने के लिए सुनता है लेकिन यदि आप अंगूठे के अलावा कहीं और इसे छूएंगे तो ACTION_MOVE ट्रिगर हो जाएगा और ACTION_UP में कुछ भी नहीं होगा अगर कथन का धन्यवाद। – zwebie
zwebie संयोजन और उचित के जवाब Nermeens समाधान:
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
private int mProgressAtStartTracking;
private final int SENSITIVITY;
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
// handle progress change
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mProgressAtStartTracking = seekBar.getProgress();
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if(Math.abs(mProgressAtStartTracking - seekBar.getProgress()) <= SENSITIVITY){
// react to thumb click
}
}
});
तो यह वास्तव में अंगूठे पर क्लिक करता है, अंगूठे की चाल पर नहीं, और तलाशने वाले के अन्य हिस्सों पर क्लिक पर नहीं।
आप संवेदनशीलता को समायोजित कर सकते हैं, क्योंकि कभी-कभी एक क्लिक पहले ही अंगूठे को थोड़ा सा स्थानांतरित करता है और अभी भी कम निराशाजनक होने पर थोड़ा बदलाव करने की इजाजत देता है। यहां एक अच्छा मूल्य तलाशबार के आकार और उसके अधिकतम मूल्य पर निर्भर करता है। मेरे लिए 3 ने पोर्ट्रेट लेआउट पर 50 अधिकतम के साथ पूर्ण-चौड़ाई वाली खोजबार पर अच्छी तरह से काम किया।
नहीं बदला हो, जो भी डाउनवॉटेड हो: कृपया मुझे बताएं कि आप मेरे उत्तर में क्या सोचते हैं। यह अन्य दो उत्तरों से बेहतर काम करता है। –
धन्यवाद, मेरे लिए ठीक काम कर रहा है हालांकि पता नहीं क्यों किसी ने मतदान किया – Vicky
मैंने बिजोम के उत्तर को प्रेरणा के रूप में उपयोग किया। अंगूठे की चाल तब होती है जब उपयोगकर्ता अंगूठे पर क्लिक नहीं करता है, यह हिल नहीं जाएगा। उम्मीद है की यह मदद करेगा। :)
यदि आपके पास कोई प्रश्न है कि यह कैसे काम करता है, तो टिप्पणी करने के लिए स्वतंत्र महसूस करें।
mSeekBarSpeed.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progress = mSeekBarSpeed.getProgress();
boolean started = false; //use this variable to see whether the user clicked the right place
@Override
public void onProgressChanged(SeekBar seekBar, int progressValue, boolean fromUser) {
if(!started){ //check to see if user clicks the right place
//if the user clicks within a specific threshold
float threshold = (float)seekBar.getMax()/seekBar.getWidth() * seekBar.getThumb().getIntrinsicWidth()/2;
if(Math.abs(progressValue - progress) < threshold){
if(fromUser){ //checks if user actually clicked it
started = true;
}
}else{
seekBar.setProgress(progress); //set to original progress
onStopTrackingTouch(seekBar); //not really necessary, keep or delete based on your needs
return; //get out of method
}
}
if(started) {
progress = progressValue; //update progress variable
System.out.println("onProgressChanged:" + progress + "/" + seekBar.getMax());
//DO WHAT YOU NEED TO DO WHEN PROGRESS IS CHANGING
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
System.out.println("onStartTracking:" + progress + "/" + seekBar.getMax());
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
System.out.println("onStopTracking:" + progress + "/" + seekBar.getMax());
//DO WHATEVER YOU NEED TO DO WHEN PROGRESS IS DONE CHANGING
started = false; //remember to set variable to false
}
});
- 1. क्लिक
- 2. क्लिक
- 3. डब्ल्यूपीएफ: बटन एकल क्लिक + डबल क्लिक इश्यू
- 4. क्लिक लिंक
- 5. क्लिक इवेंट
- 6. क्लिक करें
- 7. क्लिक श्रोता
- 8. क्लिक करें
- 9. क्लिक करें
- 10. क्लिक-बैक
- 11. क्लिक jquery
- 12. क्लिक करें
- 13. क्लिक के
- 14. क्लिक ईवेंट
- 15. क्लिक करें
- 16. क्लिक करें
- 17. क्लिक करें
- 18. क्लिक करें
- 19. अनबाइंड ('क्लिक') के बाद क्लिक ईवेंट को "रिबाइंड" कैसे करें?
- 20. पंजीयन jQuery क्लिक करें, पहले और दूसरे क्लिक
- 21. Jquery बाँध क्लिक करें और मंडराना, अगर क्लिक
- 22. डबल क्लिक बनाम सिंगल क्लिक - ये पारस्परिक रूप से अनन्य
- 23. सेलेनियम - क्लिक और क्लिक के बीच अंतर क्या है?
- 24. फ्लैश दाएं क्लिक से अलग अभिनय पर क्लिक करें
- 25. बटन पर क्लिक करें पृष्ठ पर क्लिक करें ईवेंट
- 26. Ctrl + क्लिक हैंडलर के साथ लिंक पर क्लिक करें
- 27. jQuery रहते हैं ('क्लिक') के लिए फायरिंग राइट क्लिक करें
- 28. एंड्रॉइड: लंबी क्लिक क्यों सामान्य क्लिक को ट्रिगर करता है?
- 29. jquery क्लिक क्लाइंट पर क्लिक करें यदि यह विशिष्ट वर्ग
- 30. फिर क्लिक करें फिर से सक्षम करें क्लिक करें jQuery
क्या आपने इसे हल किया? – David