2014-01-15 1 views
0

ListView 응용 프로그램이 있습니다. 이 ListView에는 Progressbar가 있습니다.이 Progressbar를 클릭하면 숨겨진 레이아웃 (이 레이아웃에는 가사가있는 textview가 포함되어 있습니다)이 표시됩니다. 마지막 Progressbar를 클릭하면 숨겨진 레이아웃이 표시되지만 수동으로 스크롤해야합니다. 그 스크롤이 자동으로 이루어져야한다. 도와주세요.자동 스크롤을 사용하여 listview의 아래쪽으로 이동하는 방법?

답변

2

이 같은 시도 : 그냥 transcriptMode를 사용하여 목록보기의 레이아웃에

private void scroll2bottom() { 
    yourListView.post(new Runnable() { 
     @Override 
     public void run() { 
      yourListView.setSelection(yourListAdapter.getCount() - 1); 
     } 
    }); 
} 
+0

아니요, 작동하지 않습니다. 단지이 메소드를 onItemClick()에서 호출합니다. –

+0

실제로이 메소드를 입력했는지 확인합니다. 여러 프로젝트에서이 코드를 사용하고 있으며 항상 작동했습니다! – nKn

+0

감사합니다. @NKN. 이제 작동 중입니다. :-) –

2

ListViewsmoothScrollByOffset() 또는 smoothScrollBy() 방법이 가장 유용 할 수 있습니다. 특히 smoothScrollBy()은 스크롤 할 거리와 스크롤 애니메이션이 실행되는 기간을 모두 사용합니다. 이 방법을 사용하면 목록을 얼마나 멀리 스크롤 할 것인지를 정확하게 제어 할 수 있습니다.

1

리스트 뷰는 내장 자동 스크롤을

안드로이드가 : = "정상"으로 스크롤 witll transcriptMode을 그 하단에 있지만 스크롤했을 때 멀리

및 설정 alwaysScroll은 항상 아래쪽으로 스크롤

다음은 안드로이드를 설정할 수 있습니다 stackFromBottom =이 이런 식으로 바닥

+0

기본적으로 마지막 쪽에서 스크롤 합니다만, 처음에는 스크롤이 위쪽에 있어야하고 마지막 진행률 막대를 클릭하면 숨겨진 레이아웃이 나타납니다. 내가 스크롤을 수동으로해야하기 때문에 나타나지 않습니다. 그러나 나는이 순간에 스크롤이 자동으로 이루어져야한다. –

0

시도에서 성장하기를 "true"

lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
lv.setStackFromBottom(true); 
+0

아마도 조금 더 설명해야합니다. – albertjan

0

프로그래밍 당신이 smoothScrollByOffset를 사용할 수있는 목록보기를 스크롤하려면 (int offset) 또는 smoothScrollToPosition (int position) 메서드를 사용하는 경우 ListView 위젯에 대한 설명서와 해당 메서드 사용 방법은 here입니다.

관련 문제