And*_*Res 7 android android-widget android-emulator android-intent android-layout
我有一个ListView
在每一行显示从互联网上提取的图像和一个字符串.
一般来说它工作正常.但是我希望控制视图(行)膨胀的方式.默认情况下,当行可见时getView()
,将调用适配器的方法.
这当然不是最好的行为之一,因为如果我有ListView
几百条记录,并且我需要到达底部的那些记录,在滚动时ListView
,getView()
将调用每一行的方法,直到我到达页脚.
所以我想在滚动之后调用getView并且ListView处于暂停/空闲状态,但我不知道如何解决这个问题:
这是我开始的方式:
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState==SCROLL_STATE_IDLE){
// Invoke get view only on visible items
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的适配器的getView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, parent, false);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.textView);
holder.image = (ImageView) convertView.findViewById(R.id.imageView);
holder.position = position;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(data.get(position).getTitle());
holder.image.setImageResource(R.drawable.ic_launcher);
new LoadImageAsync(data.get(position).getUrl(), holder.image).execute();
return convertView;
}
Run Code Online (Sandbox Code Playgroud)
请给我一些指示,看看我应该在哪里实现这一点:只在滚动后调用getView(),并且仅针对可见项目.
归档时间: |
|
查看次数: |
8471 次 |
最近记录: |