有时我注意到,对于 View v
- v.hasWindowFocus()==false
- ((View)v.getParent()).hasWindowFocus())==true
如果我正确理解文档,则永远不会是这种情况。
v.getParent()
是 ListView 的(子类)
关于可能导致这种情况的任何想法?
有时我注意到,对于 View v
- v.hasWindowFocus()==false
- ((View)v.getParent()).hasWindowFocus())==true
如果我正确理解文档,则永远不会是这种情况。
v.getParent()
是 ListView 的(子类)
关于可能导致这种情况的任何想法?
主要原因是 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);
可能会发生getView(position,...)
使用 scrapView != _views[position] 调用的情况,因此 scrapView 将被回收。另一方面,很可能同一个视图也被再次添加到 ListView 中,导致视图出现奇怪的状态。
这应该在 ListView IMO 中修复。