Android ListView:仅在滚动上加载项目
我有一个用于列表视图的自定义适配器。它有3个字段:一个缩略图和两个文本字段 布局膨胀后,将从外部服务器下载缩略图 如何更改功能,使图像仅在用户向下滚动时下载Android ListView:仅在滚动上加载项目,android,listview,Android,Listview,我有一个用于列表视图的自定义适配器。它有3个字段:一个缩略图和两个文本字段 布局膨胀后,将从外部服务器下载缩略图 如何更改功能,使图像仅在用户向下滚动时下载 @Override public View getView(int position, View convertView, ViewGroup parent) { // Inflate the layout LayoutInflater inflater = (LayoutInflater) context.getSyst
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Inflate the layout
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_single, parent, false);
ImageView image = (ImageView) rowView.findViewById(R.id.picture);
TextView firstline = (TextView) rowView.findViewById(R.id.firstline);
TextView secondline = (TextView) rowView.findViewById(R.id.secondline);
// Get information about the report
AnimalLocationLog current = objects.get(position);
// Get all the important information
String species = current.getSpecies();
String sanitizedSpecies = MiscHelpers.sanitizeString(species);
int reportId = objects.get(position).getTrackerId();
// Construct the URL to the image
String imageLocation = websiteUrl + sanitizedSpecies + separator + reportId + extension;
// Display user report
downloader.download(imageLocation, image);
firstline.setText(species);
secondline.setText("Spotted " + current.getDateTime().toString("yyyy-MM-dd H:m"));
return rowView;
}
使用ListView.setOnScrollListener向ListView添加一个,并使用ScrollListener.onScroll方法进行下载。您可以使用ListView.getLastVisiblePosition来确定哪些列表项可见,哪些不可见。这段代码似乎已经可以满足您的要求。@AdamS是对的,只有当ListView需要屏幕上的视图时才会调用getView。谢谢@AdamS-请发布一个答案,我会接受它