2011-07-06 13 views
21

मेरे पास एसडी-कार्ड में स्थित वीडियो की एक सूची है। इस बिंदु पर, मुझे सूची दृश्य में प्रत्येक पंक्ति के लिए जेश्चर बनाने या स्वाइप पहचानने में सहायता चाहिए। इस प्रश्न के लिए धन्यवाद stackoverflow Fling gesture detection on grid layout पर, मैंने सूचीदृश्य पर इशारा लागू किया। जब उपयोगकर्ता सही दिशा या बाएं दिशा में स्वाइप करता है तो अब यह आसानी से पता लगाता है। लेकिन यह इशारा पूरे सूचीदृश्य के लिए है। मैं सिर्फ यह जानना चाहता हूं कि मैं व्यक्तिगत पंक्तियों के लिए इस स्वाइप पहचान को कैसे कार्यान्वित कर सकता हूं। उदाहरण के लिए, एप्लिकेशन अब टोस्ट बनाता है जो "दाएं स्वाइप", "बाएं स्वाइप" प्रिंट करता है। मैं बस इसे "पंक्ति संख्या 1 पर दाएं स्वाइप" बनाना चाहता हूं, "पंक्ति संख्या 3 पर बाएं स्वाइप" आदि .. मुझे उम्मीद है कि मेरा प्रश्न स्पष्ट था।सूचीदृश्य की प्रत्येक पंक्ति के लिए स्वाइप पहचान

कुछ सहायक उत्तरों के लिए तत्पर हैं। धन्यवाद

+1

मदद करता है क्या आपने सूची दृश्य स्वाइप कार्यान्वयन का सुझाव दिया है [यहां] [1]? [1]: http://stackoverflow.com/questions/4373485/android-swipe-on-list/9340202#9340202 –

उत्तर

0

मुझे लगता है कि आप जो देख रहे हैं वह SwipeView (या शायद ViewFlow) मानक एंड्रॉइड इशारा पहचान के बजाय है।

+0

SwipeView या ViewFlow सबसे अच्छा उन मामलों में जहाँ हम अलग-अलग दृश्य है में किया जाता है। मेरे पास एक ही सूची है जो एक ही पृष्ठ पर दिखाई देने वाली कई वस्तुओं के साथ देखें। मैं बस प्रत्येक व्यक्तिगत पंक्ति के लिए स्वाइप जेश्चर प्राप्त करना चाहता हूं .. कोई अन्य सुझाव ?? –

1

मैं अपने समाधान में प्रति आइटम दृष्टिकोण का उपयोग कर रहा हूं - एक नज़र डालें here मेरा स्वाइप पहचान कोड मानक स्वाइप पहचान से थोड़ा अलग हो सकता है लेकिन यह मेरे लिए पूरी तरह से काम करता है। और मैं आइटम से संबंधित डेटा प्राप्त करने के लिए संलग्न टैग का उपयोग कर रहा हूं। उम्मीद है कि मदद करता है, लेकिन अगर आपके पास कुछ प्रश्न हैं तो मुझे बताएं और मैं अधिक विस्तार से व्याख्या करने की कोशिश करूंगा।

1

प्रति मेरी राय के रूप में, आइटम, जब कि आइटम को छुआ है सेट के रूप में सच है, onTouchListener उपयोग करने के लिए बूलियन उपयोग है

ListItem.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View arg0, MotionEvent event) { 
      click=true; 
      return click; 


     } 

    });` 

तो आप इस ओवरराइड कर सकते हैं:

@Override 
public boolean dispatchTouchEvent(MotionEvent ev){ 
super.dispatchTouchEvent(ev); 
Log.v("Inside", "=====Dispatch Event==="); 
if(click){ 
    Log.v("Inside", "=====Dispatch Event=T=="); 
    click=false; 
    return gestureDetector.onTouchEvent(ev); 

}else{ 
    return false; 
} 

} 
4

एक नजर डालें this answer में और प्रयोग pointToPosition विधि onFling अंदर घटना

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
    try { 
     Toast.makeText(listAdapter.getItem(listView.pointToPosition(Math.round(e1.getX()), Math.round(e1.getY())).toString()); 
     return super.onFling(); 
    } catch(Exception e) { 
     // do nothing 
    } 
} 
0

यह सवाल पुराना है, लेकिन अब तक धन्यवाद, जेक व्हार्टन ने यहां आईसीएस के लिए जारी कुछ कोड का समर्थन किया; इससे आपको अलग-अलग पंक्तियों को स्वाइप करने की अनुमति मिलनी चाहिए: https://github.com/JakeWharton/SwipeToDismissNOA

0

हमने कार्यों को प्रकट करने और यहां आइटम को खारिज करने के लिए प्रति पंक्ति स्वाइप पहचान लागू की है https://github.com/47deg/android-swipelistview। मुझे आशा है कि यह

संबंधित मुद्दे