Posts /

안드로이드 ListView 스크롤 중간 멈춤 문제

14 Jun 2018

Error

listView.post(() -> listView.smoothScrollToPosition(adapter.getCount()-1));

시도

  1. android:transcriptMode 속성 이용
    • Listview 속성으로 아이템 추가시 Focus 이동의 형태를 결정함
      • disabled
    • 기본속성: 추가되더라도 아무 반응 없음 - normal
    • 아이템이 추가되었을 때, 마지막 아이템에 Focus 되어 있었다면 새로 추가된 쪽으로 Focus 이동 - alwaysScroll
    • 아이템이 추가되었을 때, 무조건 마지막으로 이동
  1. android:stackFromBottom 속성
    • true / false
    • Listview 속성으로 아이템이 쌓이는 방향을 결정
    • true 값을 주고 위 속성과 같이 쓰니 해결은 되었으나 아이템 갯수가 적어 스크롤이 없는 경우에는 맨 아래부터 아이템이 추가되어서 그닥 보기가 좋지않음
  2. onScrollStateChanged 이벤트
    • 이전 스크롤 이동 Method 에서 공유가능한 상태값을 설정해 스크롤 상태변화 이벤트에서 마무리
public void onScrollStateChanged(AbsListView view, int scrollState) {
    if (lastLoadState && view.canScrollVertically(-1)) {
      lastLoadState = false;
      listView.setSelection(adapter.getCount()-1);
    }
  }

후기


Twitter Facebook Google+