Почему элементы изменяют порядок при прокрутке в Android GridView?
У меня есть GridView в Android, который я заполняю его данными, полученными из ресурса XML.
Например, у меня есть 15 элементов в GridView, которые расположены по порядку. Общая высота превышает высоту экрана, поэтому мне нужно прокрутить, чтобы увидеть остальные элементы.
Проблема в том, что при прокрутке назад порядок невидимых строк изменился. Это таинственное поведение, поскольку иногда элементы обмениваются рядами друг с другом.
Вот мойgetView
метод:
public class ImageAdapter extends BaseAdapter {
public ImageAdapter(Context c, NodeList cuu) {
cu = cuu;
}
public int getCount() {
Log.d("Node Count",cu.getLength()+"");
return cu.getLength();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View myView = convertView;
if (convertView == null) {
Node nd = cu.item(position);
Log.d("nodes","Pos: "+(position)+" Name: "+nd.getNodeName()+" Title: "+nd.getAttributes().getNamedItem("title").getTextContent());
int catID = Integer.parseInt(nd.getAttributes().getNamedItem("id").getTextContent());
LayoutInflater li = getLayoutInflater();
myView = li.inflate(R.layout.grid_item, null);
ImageView imageView = (ImageView) myView.findViewById(R.id.grid_item_image);
myView.setLayoutParams(new GridView.LayoutParams(70, 100));
id.download(nd.getAttributes().getNamedItem("icon").getTextContent(),imageView);
TextView textView = (TextView) myView.findViewById(R.id.grid_item_text);
textView.setText(nd.getAttributes().getNamedItem("title").getTextContent());
myView.setTag((Object) catID);
}else{
//Log.d("nodes","Pos: "+(position));
}
return myView;
}
private NodeList cu = null;
}
Update: Ну, это довольно странно. После некоторой дополнительной отладки я заметил, что в GridView адаптер пропускает 13-ю позицию, то есть возвращает 1 вместо 13, а затем переходит к 14 !!! (Полагаю, 13 - неудача!)