खोज…


परिचय

आपके ऐप्स का प्रदर्शन उपयोगकर्ता अनुभव का एक महत्वपूर्ण तत्व है। यूआई थ्रेड पर काम करने जैसे खराब प्रदर्शन वाले पैटर्न से बचने की कोशिश करें और सीखें कि तेज और उत्तरदायी एप्लिकेशन कैसे लिखें।

ViewHolder पैटर्न के साथ दृश्य लुकअप सहेजें

विशेष रूप से एक ListView , आप स्क्रॉलिंग के दौरान बहुत अधिक findViewById() कॉल करके प्रदर्शन समस्याओं में भाग सकते हैं। ViewHolder पैटर्न का उपयोग करके, आप इन लुकअप को सहेज सकते हैं और अपने ListView प्रदर्शन में सुधार कर सकते हैं।

यदि आपकी सूची आइटम में एक एकल TextView , तो उदाहरण संग्रहीत करने के लिए एक ViewHolder वर्ग बनाएं:

static class ViewHolder {
    TextView myTextView;
}

अपनी सूची आइटम बनाते समय, सूची आइटम में एक ViewHolder ऑब्जेक्ट संलग्न करें:

public View getView(int position, View convertView, ViewGroup parent) {
    Item i = getItem(position);
    if(convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);

        // Create a new ViewHolder and save the TextView instance
        ViewHolder holder = new ViewHolder();
        holder.myTextView = (TextView)convertView.findViewById(R.id.my_text_view);
        convertView.setTag(holder);
    }

    // Retrieve the ViewHolder and use the TextView
    ViewHolder holder = (ViewHolder)convertView.getTag();
    holder.myTextView.setText(i.getText());
   
    return convertView;
}

इस पैटर्न का उपयोग करके, findViewById() केवल तभी कहा जाएगा जब एक नया View बनाया जा रहा हो और ListView आपके विचारों को बहुत अधिक कुशलतापूर्वक पुन: उपयोग कर सकता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow