我有一个 Android ListView
,在滚动时会出现小的(比如说1-5帧)卡顿,大约每秒钟发生一次。我知道许多安卓手机都存在这种动画不流畅的问题,然而,在我的手机上(摩托罗拉 A855 运行 Android 2.2),原生联系人列表滚动得非常流畅。联系人列表中的项视图比我的列表中的项视图更加复杂,它是:
<RelativeLayout>
<TextView />
<TextView />
</RelativeLayout>
我只想实现与原生联系人列表一样的流畅度。似乎这应该可以在不优化本地代码的情况下实现,但也许我对此有所错误。
我尝试了几件事情:我进一步简化了项目视图,尝试以编程方式而非XML实例化它。我还尝试改变我对项目点击事件的反应方式,如此链接所述:
http://groups.google.com/group/android-developers/browse_thread/thread/7dc261a6b382ea74?pli=1
这些事情似乎都对性能没有影响。
我是否可以在我的应用程序中做一些事情来提高性能?我希望将此应用程序部署到多个手机上,因此在我的情况下更改手机设置或root设备不是一个选项。这是我适配器类中的getView方法:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater flater = (LayoutInflater)context.getSystemService(ListActivity.LAYOUT_INFLATER_SERVICE);
layout = flater.inflate(R.layout.song_view, parent, false);
TextView first = (TextView)layout.findViewById(R.id.firstLine);
TextView second = (TextView)layout.findViewById(R.id.secondLine);
Thing t = array.get(position);
first.setText(t.title);
second.setText(t.name);
return layout;
}
提前感谢!