我创建了一个自定义ListView
,并按照谷歌提供的以下程序进行操作
http://www.youtube.com/watch?v=wDBM6wVEO70
但是ListView
滚动太慢了。任何解决方案?
这是我的getview代码
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView==null){
convertView=inflater.inflate(R.layout.gridlevelinflate, null);
holder=new ViewHolder();
holder.levelImg=(ImageView)convertView.findViewById(R.id.lvlPic);
holder.levelName=(TextView)convertView.findViewById(R.id.lvlName);
holder.levelLeft=(TextView)convertView.findViewById(R.id.lvlLeft);
convertView.setTag(holder);
} else {
holder=(ViewHolder)convertView.getTag();
}
holder.levelImg.setImageResource(R.drawable.ruzzle);
holder.levelName.setText("Level " + position++);
return convertView;
}
答案 0 :(得分:0)
此代码中没有任何内容可以突显显示会导致ListView变慢的显着低效率。问题可能出在其他地方。
那就是说,这里的效率低于它们的效率:
由于它是常量,您可以将setImageResource
调用移动到初始持有者设置(convertView == null
时),但除非R.drawable.ruzzle
,否则我不会指望它非常缓慢是非常复杂的(也许甚至不是那么)。
您发现R.id.lvlLeft
然后没有使用它,因此可以删除,但它很小,因为只有在视图不被回收时才会发生。
您可以使用position+1
代替position++
,但这非常小,并且不会产生任何明显的差异。