我ListView
内的RelativeLayout
内Fragment
。我从服务器和API调用回调中获取数据我正在以下面的方式向我的CustomAdapter添加元素
@Override
public void onResponse(List<Post> response) {
mAdapter.clearAdapter();
if (response.size() > 0) {
for (Post post : response) {
mAdapter.add(post);
}
mAdapter.notifyDataSetChanged();
}
}
问题是这个mAdapter.add(post)
调用导致屏幕闪烁。我也尝试使用addAll()
代替add()
,但没有运气。我一直在使用ListView
自定义适配器,这是我第一次遇到这样的问题。我不确定问题出在哪里。此外,我在应用程序的其他地方使用相同的自定义适配器,没有任何此类问题。此自定义适配器派生自ArrayAdapter
。
更新
我尝试使用带有虚拟数据的简单ArrayAdapter<String>
,并且没有重现问题。
更新2
我从自定义适配器getView()
方法中删除了所有内容,并将其缩减为以下内容。仍然屏幕闪烁
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.list_item, parent, false);
}
return convertView;
}
更新3
我在list-item xml布局中有VideoView
导致此问题。如果我评论说闪烁消失了。