2011-07-01 14 views
11

मैं एंड्रॉइड ऐप में एक आईफोन ऐप पोर्ट कर रहा हूं और कठिनाइयों में से एक आईफोन के मूलभूत कार्यक्षमताओं को दोबारा शुरू कर रहा है।Android के लिए सूची दृश्य आइटम के स्लाइड प्रभाव में स्लाइड

मुझे आईफोन की मूल कार्यक्षमता मिली: जब उपयोगकर्ता सूची दृश्य में किसी सूचीबद्ध आइटम पर स्लाइड स्पर्श निष्पादित करता है, तो एक डिलीट बटन दिखाई देता है।

क्या एंड्रॉइड में इसके लिए कोई संस्करण है? क्या इसका उपयोग और पुन: उपयोग/अनुकूलित किया जा सकता है?

+1

इसके बजाए उनके पास विशिष्ट व्यवहार है .. लंबी पर क्लिक करें विकल्पों की एक सूची पर क्लिक करें .. – ngesh

+0

मैं वास्तव में यह जानना चाहता हूं .... :) –

उत्तर

0

मुझे लगता है कि आप या तो सूचीदृश्य पर इशारा श्रोता को लागू करने का प्रयास कर सकते हैं लेकिन सही आईडी प्राप्त करना मुश्किल हो सकता है। चूंकि मैंने इसे स्वयं नहीं किया है, इसलिए मैं बिल्कुल जवाब नहीं दे सकता।

अन्यथा आप सूचीदृश्य में आइटम के रूप में अपना स्वयं का विचार कर सकते हैं और सभी बच्चों पर एक इशारा श्रोता है।

Fling gesture detection on grid layout कुछ बुनियादी पढ़ने और कोड उदाहरण

1

यह सिर्फ एक थोड़ा और अधिक जटिल प्राप्त करने के लिए है के लिए। यही वह है जो मैं उच्च स्तर से बात करता हूं।

  1. सूची आइटम रखने के लिए कस्टम व्यू ग्रुप/लेआउट बनाएं। इस लेआउट के अंदर आपके पास अपनी टेक्स्ट लाइन छवियां हैं या आपके पास क्या है और डिलीट बटन भी है। आप यहां डिलीट बटन को छिपाने या खोलने के लिए इशारे के लिए भी सुनते हैं।

  2. अपनी सूची एडाप्टर में आपको यह ट्रैक रखने की आवश्यकता होगी कि कौन सा आइटम डिलीट बटन दिखा रहा है और जो नहीं है। साथ ही, आपको प्रत्येक सूची आइटम हटाएं बटन पर एक क्लिक श्रोता लागू करने की आवश्यकता होगी। प्रत्येक बार जब आप सूची आइटम पर इन राज्यों को असाइन करते हैं तो आपको सेट (...) सेट करना चाहिए और सूची आइटम स्थिति को स्टोर करना चाहिए ताकि जब इसे क्लिक किया जाए तो आप बता सकते हैं कि कौन सा आइटम नंबर हटाया जाना चाहिए।

  3. हटाने के बाद आपको इसे प्रभावी होने के लिए सूची को रीफ्रेश करना होगा। आप जिस प्रकार के एडाप्टर का उपयोग कर रहे हैं उसके आधार पर यह निर्धारित करने जा रहा है कि आप एडाप्टर को रीफ्रेश कैसे करते हैं।

उम्मीद है कि यह कुछ समझ में आता है। लेकिन मुझे निश्चित रूप से लगता है कि यह सबसे आसान तरीका है क्योंकि मैंने इसे समान कार्यक्षमता के साथ दो बार किया है।

0

मुझे नहीं लगता कि ऐसा करने के लिए कोई अंतर्निहित एपीआई फ़ंक्शन है।

हालांकि, सूचीकरण में दृश्य पर ऑनफ्लिंग फ़ंक्शन का उपयोग करने के लिए एक कामकाज होगा। आप जो भी चाहते हैं उसे पूरा करने के लिए आप इसका उपयोग कर सकते हैं।

0

इस तरह मैं इस प्रभाव को महसूस करता हूं। हमारे पास ListView lvSimple है और हम टचलिस्टर को हमारे lvSimple में जोड़ते हैं। यह मेरा कामकाजी कोड है।

float historicX = Float.NaN, historicY = Float.NaN; 
static final int DELTA = 50; 
enum Direction {LEFT, RIGHT;} 
... 
ListView lvSimple = (ListView) findViewById(R.id.linLayout); 
... 
lvSimple.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) 
    { 
     // TODO Auto-generated method stub 
     switch (event.getAction()) 
     { 
      case MotionEvent.ACTION_DOWN: 
      historicX = event.getX(); 
      historicY = event.getY(); 
      break; 

      case MotionEvent.ACTION_UP: 
      if (event.getX() - historicX < -DELTA) 
      { 
       FunctionDeleteRowWhenSlidingLeft(); 
       return true; 
      } 
      else if (event.getX() - historicX > DELTA) 
      { 
       FunctionDeleteRowWhenSlidingRight(); 
       return true; 
      } break; 
      default: return false; 
     } 
     return false; 
    } 
}); 

जहां समारोह FunctionDeleteRowWhenSlidingLeft() जब जब हम बाईं ओर, FunctionDeleteRowWhenSlidingRight रपट बुला रहा है - सही करने के लिए क्रमशः। इस फ़ंक्शन में आपको एनीमेशन के लिए पेस्ट कोड चाहिए।

ps। मुझे मेरी बुरी अंग्रेजी के लिए खेद है। मदद करने के लिए हमेशा खुश हैं।

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