2010-11-30 5 views
3

그래서 ListView를 구성하는 다른 부분에 문제가 있습니다. 나는 ArrayList에 그것들을 넣고 사용자 정의 ArrayAdapter를 사용하여 ListView에 연결합니다. 그래서 전에 거기에서 문제가 있다고 생각하지 않습니다. 처음에는 목록의 순서가 올바르지 만 목록을 아래로 스크롤하면 내용이 잘못된 순서로로드됩니다. 그런 다음 다시 스크롤하면 모든 것이 뒤죽박죽입니다. 누구도 전에 이것에 빠졌습니까?ListView의 내용이 스크롤에 뒤섞여 있습니다.

감사 제이크

+1

당신이 당신의 어댑터의 getView 메서드를 재정?을 참조하십시오 그렇다면 무엇을하고 있는지 보여주십시오. –

+0

Jake, 나는 같은 문제가있어서 해결책을 찾았습니다. http://stackoverflow.com/questions/2955218/listview-in-arrayadapter-order-gets-mixed-up-when-scrolling?rq=1 – Reiksiel

답변

5

은 네 문제는 목록은 각 행의 뷰를 재사용한다는 사실과 관련이 있습니다. 따라서 목록에 5 개 항목이 표시되지만 ListAdapter에는 15 개 항목이 있습니다. 안드로이드는 15 대신에 행보기의 5 + 1 인스턴스를 생성합니다. 목록의 각 행에 대해 하나 + 상단 및 하단의 절반을 볼 수있는 경우 1. 행이 가시 영역 밖으로 이동하면 List는 새로운 행을 만드는 대신 다른 행에 대해 해당 뷰 인스턴스를 재활용합니다. 다른 행의 이슈가 나타날 때마다 모든 사용자 인터페이스 구성 요소를 올바르게 재설정하지 않으면됩니다. 배열 목록에있는 객체의 데이터를 매 필드마다 매번 설정 한 뷰에 바인딩 할 때마다 반드시 확인해야합니다. 이의 더 나은 설명은

http://www.youtube.com/watch?v=N6YdwzAvwOA&feature=related

+0

굉장 . 나는 재활용하고 있다는 것을 깨달았지만 전과 똑같은 것을 표시하도록 필드를 다시 설정하지는 않았습니다. 감사. – jakehschwartz

관련 문제