J'ai un ListView
où je voudrais gonfler un View
personnalisé à une certaine position. C'est en fait le 11ème article (position 10).Gonflage personnalisé Afficher dans la listeVoir selon la position
Le retour méthode getCount()
11.
Voici la partie supérieure de la méthode getView()
:
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
if (position < 10) {
convertView = mInflater.inflate(R.layout.standard, null);
} else {
convertView = mInflater.inflate(R.layout.custom, null);
Log.i(TAG, "Inflated custom layout");
}
Log.i(TAG, "getView, position = "+position);
holder = new ViewHolder();
holder.tv = (TextView) convertView.findViewById(R.id.tv);
holder.radioButton = (RadioButton) convertView.findViewById(R.id.radioButton1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
...
Log.i(TAG, "getView() : position = " + position);
}
Voici ce que je vois dans le logcat:
getView, position = 0
getView, position = 1
getView, position = 2
Le reste du Les journaux getView ne s'affichent PAS; Je suppose que cette ligne apparaîtrait jusqu'à getView, position = 10
.
Et cette ligne: convertView = mInflater.inflate(R.layout.custom, null);
n'est jamais appelée, car Inflated custom layout
n'apparaît pas dans le logcat.
Il est drôle que, parce que le logcat fond est toujours appelé (comme je défiler vers le bas le ListView
):
getView() : position = 0
getView() : position = 1
getView() : position = 2
getView() : position = 3
getView() : position = 4
getView() : position = 5
getView() : position = 6
getView() : position = 7
getView() : position = 8
getView() : position = 9
getView() : position = 10
Pourquoi est ma mise en page personnalisée dégonflée?
Génial, merci. – eightx2
trouver ma modification comme pourquoi la vue fonctionne de cette façon. –
Mais dans ce cas, chaque fois que la position passe au-dessus de 10 vue personnalisée sera gonflé à droite? Supposons que si la méthode getView appelle 100 fois avec la position 11, alors une instance de 100 de cette vue sera créée. – Triode