我正在为我的应用程序制作一种 Pulse 的 UI。为此,我使用这里HorizontalListView
给出的类。但是,此类存在性能问题并提供明显的滞后。
为了确认这一点,我使用它进行了评估TraceView Profiler
,发现这个类并没有完全重用视图,而是inflate()
为内部的每个调用调用方法getView()
。
这是我设计适配器的方式:
public View getView(final int position, View convertView, ViewGroup parent) {
final BaseAssets baseAsset = baseAssetsList.get(position);
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.gallery_list_item, parent, false);
viewHolder.newLabel = (ImageView) convertView.findViewById(R.id.iv_new);
viewHolder.assetImage = (ImageView) convertView.findViewById(R.id.iv_thumbnail);
convertView.setTag(viewHolder);
} else
viewHolder = (ViewHolder) convertView.getTag();
}
class ViewHolder {
ImageView newLabel;
ImageView assetImage;
}
我做错什么了吗?如果没有,请向我建议解决方法以提高性能。可能是您尝试过的其他库或任何重用我当前库中视图的方法。谢谢 !