有时我会注意到,对于View v
- v.hasWindowFocus()==false
- ((View)v.getParent()).hasWindowFocus())==true
如果我理解正确的文档,那绝不应该这样。
v.getParent()
是ListView
关于可能导致此问题的任何想法?
注意:我认为这有ofWindowFocus-mismatch是this issue
的根本原因答案 0 :(得分:1)
主要原因是ListView不喜欢具有视图数组的适配器。
所以问题是由像
这样的代码触发的public View getView (int position, View convertView, ViewGroup parent)
{
return _views[position];
}
当查看ListView代码(或者更确切地说是它的父亲AbsListView.obtainView方法)时,你会看到像
这样的代码 if (scrapView != null) {
...
child = mAdapter.getView(position, scrapView, this);
...
if (child != scrapView) {
mRecycler.addScrapView(scrapView);
使用scrapView!= _views [position]调用getView(position,...)
可能会发生,因此scrapView将被回收。另一方面,很可能同样的视图也会再次添加到ListView,导致视图变得奇怪。
这应该在ListView IMO中修复。