마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰 갱신시 특정position 으로 이동

0 추천
초기 리스트뷰에 데이터를 20개 보여줍니다.

 

스크롤링하여 제일 하단에 도달했을 때 또 20개를 추가해줍니다.

 

이 때, 최근 스크롤링했던 값. 즉 총 40개 데이터에서 20개의 위치로 포커스가 가려면 어떻게 접근해야되나요?

 

로직은 다음과 같이 진행됩니다.

1페이지 요청 -> DB에 20개 저장 -> 리스트뷰, 어댑터 초기화 -> 갱신

2페이지 요청 -> DB에 20개 저장 -> 리스트뷰, 어댑터 초기화 -> 갱신

 

초기화 후 갱신하기에 제일 처음 값으로 돌아오는 것이 맞다 생각하지만

onScroll 에서 [AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount]

이 부분만 잘 제어하여 전역변수에서 현재 position을 기억하고.

그에 따라 리스트뷰로 이동해주면 될 듯 한데.

requestFocus()와 비슷한 기능이 있을까요?

 

조언 구합니다.
개발자초심 (21,220 포인트) 님이 2014년 9월 19일 질문

1개의 답변

0 추천

이런..api 가 있긴 합니다만...잘 동작할지 모르겠네요...

 

public void smoothScrollToPosition (int position)

Added in API level 8

Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.

Parameters
position Scroll to this adapter position.

 

wifi (1,340 포인트) 님이 2014년 9월 19일 답변
답변 감사합니다.
해당 메소드는 정상 작동하나.. 갱신함과 동시에 위치시키지는 못하네요.
다른방법을 찾아봐야될 것 같습니다... 아쉽습니다.
...