2012-03-14 34 views
5

मेरा लक्ष्य आइटम getView को ArrayAdapter में नए फुलाए गए लोगों के साथ सूची आइटमों को प्रतिस्थापित करके एनिमेशन के साथ गड़बड़ करने के बिना getView पर ध्यान दिए बिना आइटम को एनिमेट करना है।कुछ सूची दृश्य आइटम

यदि मैं नई वस्तुओं को बढ़ाने से बचने के लिए convertView का उपयोग करता हूं तो एनिमेशन का क्रम यादृच्छिक रूप से बदल जाता है।

विचारों को कैशिंग मैन्युअल रूप से ठीक काम करता है लेकिन मुझे संदेह है कि यह एक अच्छा समाधान है। बेहतर विचार?

उत्तर

4

मैं कन्वर्टव्यू पर एनीमेशन सेट करने के लिए क्या करता हूं और फिर मैं प्रत्येक कन्वर्टव्यू पर एनीमेशन रोकता हूं। इस तरह एनीमेशन बंद हो जाता है और फिर कन्वर्टव्यू नया होता है और तब तक खेला जाता है जब इसे समाप्त होने से पहले रीसाइक्लिंग नहीं किया जाता है।

संपादित करें मुझे एक उदाहरण नहीं मिल रहा है, इसलिए यह आंशिक रूप से छद्म कोड होगा।

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    final ViewHolder holder; 

    if(convertView == null) { 
     // setup holder 
     holder = new ViewHolder(); 

     LayoutInflater Inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = Inflater.inflate(mResourceId, null); 

     holder.image = (ImageView) convertView.findViewById(R.id.row_image); 
     holder.headline = (TextView) convertView.findViewById(R.id.row_headline); 

     convertView.setTag(holder); 
    } else { 
     // get existing row view 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    // GetView is only called on new items 
    // so now we stop the previous animation and start a new 
    holder.animation.stop(); // First you stop the animation 
    holder.animation = new animation(); // then you create new 
    holder.animation.start(); // then you start the animation. 
+0

आप नमूना कोड सामान की आपूर्ति कर सकते हैं:

अपने एडाप्टर में आप निम्नलिखित की तरह कुछ होगा? –

+0

@ अशरफसेद-अहमद मैंने एक छोटा सा उदाहरण जोड़ा, यह सही नहीं है लेकिन आपको इसका झटका मिलता है। – Warpzit

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