Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- bitbucket
- git인증
- 안드로이드 스튜디오
- WPF
- 빌드 오류
- Invalid credentials
- 디버깅
- VisualStudio
- 인증문제해결
- gradle
- flutter
- not working
- 데이터바인딩
- 개발환경설정
- 예제
- EC2
- 리액트
- Kotlin
- sourcetree
- Android
- Git
- 뒤로가기 안됨
- 설정
- 리액트 네이티브
- 안드로이드
- react-native
- AWS
- aPK
- 안됨
- react
Archives
- Today
- Total
물에 살고싶은 개발자
뷰페이저 데이터 갱신을 하기위해 본문
뷰페이저 데이터를 갱신하기 위해서는
PagerAdapter.notifyDataSetChanged();
이 한줄로 될줄알았다.
하지만 갱신이 완벽하게 되진 않더라.
일단 내가 1,2,3,4,5를 불러둔 상태에서
5를 보고있는 상태에서 데이터를 6,7,8,9,10으로 바꾸고
PagerAdapter.notifyDataSetChanged();
를 호출하게 되면 현재 보고있는 5와 4는 그대로 남고 그 뒤쪽만 갱신이 된다.
즉, 갱신된 데이터는 6,7,8,4,5 가 되는데,
내가 7까지 슬라이드를 했다가 다시 8로 가는순간 4 가 9로 바뀌고, 9로 가면 5가 10이된다.
즉 현재 보고있는 페이지에서 앞뒤로 하나씩
imagePager.getCurrentItem();
위 Method를 호출해서 3이 나왓으면 2,4가 갱신이 안된다는 뜻이다.
왜 이렇게 만들어놧는지는 이해가 안되지만, 아무튼 중요한건 notifyDataSetChanged() 로는 원하는대로 갱신이 안될수도있다는 얘기다.
잠깐 구글링을 해보니 답이 쉽게 나오더라.
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
이 Method를 오버라이드 해서 리턴값을 저렇게 NONE 상수값으로 바꾸면 된다.
저 상수값을 리턴해주면 전체 데이터를 갱신한다.
(전체 데이터를 삭제하고 새로 갱신하는것으로 추측됨, 테스트는 안해봄)
주린배를 움켜쥐고 야밤에 헤롱거리면서 작성했더니 뭔소린지 모르겠네
아무튼 요는 getItemPosition을 오버라이드하고 POSITION_NONE을 리턴해줄것!
끗
Comments