【发布时间】:2013-01-05 09:00:39
【问题描述】:
我有一个功能齐全的listview(在ListFragment 中)和一个自定义ArrayAdapter。
适配器的布局由一个imageview、一个button、一个gridview和几个textviews组成。
问题是列表视图在滚动时非常紧张。我已经实现了ViewHolder 模式,它稍微提高了性能。GridView 包含我在AsyncTask 中检索的联系人图像,并且还使用应用程序缓存来显示位图。
我还能做些什么来使 listview 滚动平滑?
我在适配器的getView 方法中使用了如下所示的视图回收
public View getView(int position, View convertView, ViewGroup parent) {
View myView;
holder = new ViewHolder();
if (convertView == null) {
inflater = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
myView = inflater.inflate(R.layout.events_list_activity, parent, false);
}
else {
myView = convertView;
}
}
【问题讨论】:
-
您是否正确回收了
ListView每个项目中使用的Views? -
您的
ListView的每一行都有一个GridView?如果是这样的话,那么我的下一个猜测是滚动的触摸动作被委派给GridView孩子,这使它变得紧张。尝试为所有GridViews 关闭触摸操作,看看是否有帮助,然后尝试删除所有GridViews,看看问题是否消失。没有太多代码,我们所能做的就是猜测;)
标签: android android-listview android-listfragment