मैं अलग बच्चे की गतिविधियों के साथ मेरी TabActivity को लागू किया है:एंड्रॉयड: GestureDetector टैब्स (TabActivity, Tabwidget) के साथ काम नहीं कर रहा (gestureDetector.onTouchEvent (घटना) हमेशा गलत)
intent = new Intent().setClass(this, MyChildTabActiviy.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = getTabHost.newTabSpec("tag").setIndicator("indicator", getResources().getDrawable(R.drawable.icon)).setContent(intent);
getTabHost.addTab(spec);
...
अब तक कोई समस्या नहीं है, सब कुछ पूरी तरह से काम करता है ठीक। मैं टैब के बीच प्रोग्रामेटिक रूप से स्विच कर रहा हूं, गतिविधि समूह के साथ टैब के भीतर गतिविधियों को बदल रहा हूं, जैसे कि यह कई ट्यूटोरियल्स में दिखाया गया है।
लेकिन मेरी समस्या यह है कि जब मैं एक झुकाव इशारा करने के लिए जांचना चाहता हूं तो मेरा इशारा Detector.onTouchEvent (घटना) हमेशा झूठी वापसी कर रहा है, इस प्रकार कोई इशारा पंजीकृत नहीं है।
यह gestureDetector की मेरी दिया गया है:
public class MyChildTabActiviy extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// ... building views, controls, etc.
GestureDetector gestureDetector = new GestureDetector(this, new MyGestureDetector());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// left to right swipe and right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//... fling logic ...
return true;
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//... fling logic ...
return true;
}
return false;
}
}
बात है, कि इस कोड (और यह भी फ़्लिंग का पता लगाने) पूरी तरह से ठीक काम करता है, जब मैं इन गतिविधियों शुरू कर (वहाँ चार बुनियादी गतिविधियों रहे हैं, कि मैं कभी-कभी अन्य गतिविधियों पर स्विच करता हूं) TabActivity के बाहर, उदाहरण के लिए एक लॉन्चर गतिविधि के रूप में। लेकिन मैं इसे टैबएक्टिविटी के भीतर काम नहीं कर सकता। मैंने पहले ही जेस्चरडिएक्टर को टैबएक्टिविटी में जोड़ने की कोशिश की है, लेकिन यह काम नहीं करता है। मैंने जेस्चरडेक्टर को कुछ लेआउट व्यू या बटन, व्यूफ्लिपर्स इत्यादि जैसे विशिष्ट दृश्यों में जोड़ने की कोशिश की लेकिन यह काम नहीं करता है। जब मैं डिबगिंग हूँ, मैं देख सकता हूँ कि स्पर्श घटना शुरू हो रहा है और एक प्रस्ताव पंजीकृत है, लेकिन यह सिर्फ एक फ़्लिंग या किसी अन्य संकेत के रूप में मूल्यांकन नहीं किया गया है।
तो मेरी सवाल है, एंड्रॉयड में टैब्स के साथ GestureDetectors के उपयोग के बारे में कोई सीमाओं देखते हैं कर रहे हैं? जैसा कि मैंने कहा, इशारा एक टैबएक्टिविटी के बाहर पूरी तरह से पंजीकृत हैं।
मैं बहुत कोई है जो जवाब जानता है की मदद की सराहना करेंगे। यदि कोई सीमा है, तो उस समस्या के लिए कोई कामकाज कैसे प्राप्त कर सकता है?
जवाब के लिए अग्रिम धन्यवाद।
[ग्रिड लेआउट पर फ़्लिंग जेस्चर डिटेक्शन] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/937313/fling-gesture-detection-on-grid-layout) – BergQuester