当ListView完成显示项目时,我需要做一些事情。
现在,我先调用NotifyDataSetChanged,然后使用list.FirstVisiblePosition,但问题是在调用时没有任何项目可见。
那么,当项目在屏幕上可见时,如何触发我的代码?
原因是我只需要为可见项做一些工作。
谢谢,尼克拉斯
最佳答案
您在ListView中使用哪种集合类型?如果您使用的是“普通”集合类型(例如System.Collections.Generic.List<T>
),则在构造ListView之后,ListView将看不到添加到集合中的任何项目。您将需要使用JavaList<T>代替。
请参见Collections binding overview末尾的示例:
// This fails:
var badSource = new List<int> { 1, 2, 3 };
var badAdapter = new ArrayAdapter<int>(context, textViewResourceId, badSource);
badAdapter.Add (4);
if (badSource.Count != 4) // true
throw new InvalidOperationException ("this is thrown");
// this works:
var goodSource = new JavaList<int> { 1, 2, 3 };
var goodAdapter = new ArrayAdapter<int> (context, textViewResourceId, goodSource);
goodAdapter.Add (4);
if (goodSource.Count != 4) // false
throw new InvalidOperaitonException ("should not be reached.");
关于android - Android ListView在显示/初始化事件上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7399205/