2013-07-12 7 views
0

후 위치를 스크롤합니다. 별도의 버튼을 누르면안드로이드 ListView를 재설정 내가 행을 클릭하면 다른보기와 목록보기를 대체하는 안드로이드 (JB) 응용 프로그램의 목록보기를 먼저 스크롤

(아이디어가 있음을리스트 뷰의 부모 컨테이너 토글 단일 행의 내용) 활성 다시 목록보기를 추가한다. 나는 아래쪽 행으로 스크롤 (목록보기를 대체 할)를 누를 때

문제가 발생합니다. 목록보기를 다시 표시하기 위해 다른 버튼을 누르면 모든 것이 잘 보입니다 (행 상태 및 스크롤 위치 포함). 그러나 다시 스크롤하려고하면 목록 뷰가 맨 위로 되돌아갑니다. 그 후 스크롤하면 정상적으로 작동합니다.

목록보기의 데이터 원본이 전혀 변경되지 않습니다. 이상하게도, 태블릿의 방향을 바꾼다면 처음으로 스크롤해도 목록보기가 맨 위로 재설정되지 않습니다. 내가 추측하고있어

보기를 제거하고 (부모에 removeAllViews와 addView를 호출하여 수행됩니다) 같은 뷰를 다시 추가와 함께 할 수있는 뭔가가.

답변

0

는 잘 모르겠어요하지만 난 당신이 어떤 이유로 removeAllViews를 호출 할 때 이전 상태를 저장할 수 있다고 생각합니다. 문제를 해결하는 가장 좋은 방법인지 다시 모르겠지만 제거하기 전에 스크롤 위치를 저장 한 다음 다시 뷰를 추가 한 후에 설정할 수 있습니다. 이 같은

뭔가 :

int posX = listView.getScrollX(); 
//remove your view 

이후 :

//add your views 
listView.setScrollX(posX); 
+0

감사합니다, 그 문제의 원인입니다. 스크롤 상태를 저장하는 올바른 방법은 다음과 같습니다. http://stackoverflow.com/a/3035521/1408673 – FUR10N