У меня есть 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) {
}
});
Это 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;
}
Пожалуйста, дайте мне несколько указаний, где я должен искать, чтобы добиться этого. :Вызовите getView ()только после прокрутки и только для видимых элементов.