我正在处理ListView
。我想知道何时调用getView()
。一旦适配器被设置,它会被调用吗?并且一旦getView()
方法完成执行,“设置适配器”旁边的行会被调用吗?何时调用ListView的getView()方法?
一旦getView()
完成执行,请帮助我知道哪一行被执行。
这对我很有帮助。
由于提前, Vaishnvai
我正在处理ListView
。我想知道何时调用getView()
。一旦适配器被设置,它会被调用吗?并且一旦getView()
方法完成执行,“设置适配器”旁边的行会被调用吗?何时调用ListView的getView()方法?
一旦getView()
完成执行,请帮助我知道哪一行被执行。
这对我很有帮助。
由于提前, Vaishnvai
getView()
的呼吁传递给您的适配器列表中的每个项目。 设置适配器时会调用它。当getView()
完成后,调用setAdapter(myAdapter)
后的下一行。 为了调试getView()
,您必须在其上切换一个断点,因为您无法从setAdapter(myAdapter)
步入getView()
。 getView()
也在notifyDataSetChanged()
之后并在滚动时调用。
感谢您的快速响应当我在getView()方法中设置了一些变量值。当我将它们打印在setAdapter()方法旁边的行中时,它们仍然显示为零。这些变量可以访问完整的Activity。你能帮忙吗? – Vaishnavi
hey。一旦getView()被执行,控件就不会回到setAdapter()旁边的语句。事实上,一旦setAdapter()被调用,控件就不会直接进入getView(),几乎所有的语句都会被优先处理,然后控件移动到getView()。林与这种行为literaly混淆。请帮忙。 – Vaishnavi
嗨。这意味着,如果我有100个项目在列表视图中显示,那么getView()方法将被调用100次? –
为了更加清楚,只要屏幕上显示新项目时显示的项目数就会调用getView()。这意味着,如果你有100万个项目,但其中15个适合屏幕,getView被称为15次。无论何时向上/向下滚动并出现新项目,都会调用getView()以获取新项目。你也应该知道回收机制。其中包含每个项目类型的模板项目布局,并在此视图中将getView()方法作为convertView参数发送,因此您可以使用它来防止布局膨胀。
嗨...所以,当我向下滚动时,getView()方法被调用,每个列表项都变得对用户可见?此外,最初如果在移动屏幕上一次只能看到10个项目,那么在开始时getView()方法会被调用10次?我的想法是否正确? ... 谢谢。 –
@TheHunter是的,没错。 –
每当getView()被调用时,convertView == null? –
你可以发布你的代码吗? –