Android
Prestatieoptimalisatie
Zoeken…
Invoering
De prestaties van uw apps zijn een cruciaal onderdeel van de gebruikerservaring. Probeer patronen te voorkomen die slecht presteren, zoals werk aan de gebruikersinterface en leer hoe u snelle en responsieve apps kunt schrijven.
Sla View-lookups op met het ViewHolder-patroon
Vooral in een ListView
kunt u prestatieproblemen findViewById()
tijdens het scrollen te veel findViewById()
-aanroepen te doen. Door het ViewHolder
patroon te gebruiken, kunt u deze opzoekingen opslaan en uw ListView
prestaties verbeteren.
Als uw lijst bevat een enkele TextView
, maakt u een ViewHolder
klasse aan de instantie op te slaan:
static class ViewHolder {
TextView myTextView;
}
ViewHolder
tijdens het maken van uw lijstitem een ViewHolder
object toe aan het lijstitem:
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;
}
Met dit patroon wordt findViewById()
alleen aangeroepen wanneer een nieuwe View
wordt gemaakt en de ListView
uw weergaven veel efficiënter kan recyclen.