findViewById vs View Holder Pattern im ListView-Adapter

Ich benutze immerLayoutInflater undfindViewById zum Erstellen eines neuen Elements in dergetView Methode einerAdapter.

Aber in vielen Artikeln schreiben die Leute dasfindViewById ist sehr sehr langsam und es wird dringend empfohlen, das View Holder Pattern zu verwenden.

Kann mir jemand erklären warumfindViewById ist so langsam? Und warum ist das View Holder Pattern schneller?

Und was soll ich tun, wenn es erforderlich ist, einem Element verschiedene Elemente hinzuzufügen?ListView? Soll ich Klassen für jeden Typ erstellen?

static class ViewHolderItem1 {
    TextView textViewItem;
}

static class ViewHolderItem2 {
    Button btnViewItem;
}
static class ViewHolderItem3 {
    Button btnViewItem;
    ImageView imgViewItem;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage